I wrote a wiki page on how I have successfully done several acid-state 0.5 to 0.6 migrations:

http://code.google.com/p/happstack/wiki/AcidState05to06

It's not very pretty. But it works. Basically you just created SafeCopy 0.5 *and* 0.6 instances for all your types, and then run the migrate function I supplied. 

If you forget to create an instance, you get a compile time error. The new state is written to a new directory. 

So, if the app compiles and runs you can have pretty high confidence that everything worked correctly. And it doesn't write anything to the old state directory, so it's not going to corrupt your data that way either.

- jeremy


On Wed, Feb 15, 2012 at 12:24 PM, Lemmih <lemmih@gmail.com> wrote:
Greetings,

With acid-state-0.6, you can use regular Haskell data structures
without worrying about data loss or durability. Your state will simply
always be available to you even after software crashes or power
outages.

Important: acid-state-0.6 is not immediately backwards compatible with
previous versions. To restore states from previous versions you first
need to create a checkpoint and then modify your data structure to use
the 'Prim' wrapper from safecopy-0.6 wherever built-in types are used.
More information on this will be on the wiki soonish. I hope this
slight inconvenience will be worth it in the long run.

Acid-state-0.6 also includes a new Remote backend that enables
concurrent access by multiple processes.

For examples of how to use the library, see:
http://mirror.seize.it/acid-state/examples/

Hackage page: http://hackage.haskell.org/package/acid-state

Wiki site: http://acid-state.seize.it/

--
Cheers,
  Lemmih

_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell