読者です 読者をやめる 読者になる 読者になる

migrate 0.4.5の変更点

SQLAlchemy

sqlalchemy-migrateが0.4.5になり、互換性に影響する変更(DBレポジトリの構成が変更)が行われた。

旧形式のレポジトリを新形式のレポジトリに変換するには、上記のwikiに記述されているスクリプトを使う。

$ curl -O http://sqlalchemy-migrate.googlecode.com/svn/trunk/migrate/versioning/migrate_repository.py
$ python migrate_repository.py path/to/migrate_repos

通常ならばこのスクリプトで問題なく移行できると思われるが、旧形式のレポジトリディレクトリ内にpyファイル以外を置いていると変換ができない。

僕の遭遇したケースだと、

+ migrate
++ versions/
+++ 28
+++ 29
++++ __init__.py
++++ 29.py
++++ data.csv

のようにバージョン29のディレクトリにcsvファイルを置いてあったため、エラーとなった。

修正はできるが、そもそも1年半開発を続けてきて今のDBバージョンは125。以前のバージョンに戻すことは不可能なので、ここでレポジトリを新しくするのが正解か。