Skip to content

Tools to help migrate streams from different versions of NEventStore persistence engines

License

Notifications You must be signed in to change notification settings

nchistyakov/NEventStore.Migrations

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NEventStore.Migrations

A utility to migrate commits from between two persistence engines.

This works by hosting a source event store and a destination event store in seperate appdomains (so they can reference different versions of dependencies) and pulls commits from the source and puts them in the destination. To investigate how this works, clone the repo, open src\MigrateCommits.sln and run the MigrateCommits project. The utility uses in-memory stores.

Instructions

  1. Clone the repo. You will need to make changes to it to suit your environment.
  2. Inspect the package dependencies in MigrateCommits.Source and MigrateCommits.Destination projects and ensure they match your environment.
  3. Modify MigrateCommits.Source.SourceStore to wirup to your source event store.
  4. Modify MigrateCommits.Destination.SourceStore to wirup to your destination event store.
  5. Important Add a reference to your events assembly in the MigrateCommits.Source and MigrateCommits.Destination projects so that headers and event bodies can be deserialized.
  6. Remove sample test code from MigrateCommits.Destination.SourceStore constructor.

Message Serialization (Optional)

It is assumed that your messages (events & headers) are marked [Serializable] so they can be treansferred across appdomain boundaries. If they are not, either mark them as such, or, perform manual serialization & deserialization. To use custom serialization:

  1. Modify MigrateCommits.Source.SourceStore SerializeHeaders & SerializeBody methods to return serialized body & header values
  2. Modify MigrateCommits.Destination.SourceStore DeserializeHeaders & DeserializeBody methods to return deserialized body & header values

Notes

  • Backup everything first.
  • Snapshots are not migrated. Just re-run your snapshot process on the destination store after migration.

Questions? Head over to the Google Group or Jabbr Room

About

Tools to help migrate streams from different versions of NEventStore persistence engines

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published