Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrating Data #17

Open
seandenigris opened this issue May 15, 2023 · 1 comment
Open

Migrating Data #17

seandenigris opened this issue May 15, 2023 · 1 comment

Comments

@seandenigris
Copy link
Owner

seandenigris commented May 15, 2023

This should be stored as documentation and closed...

Feedback has shown that it can be complicated for users to migrate data from one version to another. One avenue of attack is to make the data format and materialization smarter.

Here we document some best practices:

  1. In the source image - before migrating - upgrade fuel to the version you expect to use in the new image. Here is an example script (NB if you are not on GT, you may not need to remove all the packages first):
fuelPackages := RPackage organizer packages select: [ :e | e name beginsWith: 'Fuel-' ].
fuelPackages do: #removeFromSystem

Metacello new
    repository: 'github://theseion/Fuel:5.2.1';
    baseline: 'Fuel';
    onConflict: #useIncoming;
    load.

FLVersion current

If much time has gone by (e.g. years) this might not be possible because the desired Fuel version might not be loadable in a very old Pharo image. More detail about that special case can be found in PharoEnhancement's "Fuel Migration" Lepiter page

  1. If jumping from one consecutive version to the next, we should be able to handle migration automatically because SimplePersistence now provides this. Dynabook is already using this feature. Longer jumps between distant versions might be possible too, but is untested.
@RalfBarkow
Copy link

Re: 2. ?

See Ward's Remote Database Schema Migration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants