0

このオプションを使用して、アプリに対して誤って偽のSouth移行を実行しました--fakeが、データベースに最後の変更がありません。

3つの移行を偽造しましたが、データベースの状態はまだ0002です。移行を一覧表示すると、すべての移行が実行済みとしてマークされます。

$ ./manage.py migrate cmsplugin_mailchimp --list

 cmsplugin_mailchimp
  (*) 0001_initial
  (*) 0002_thankyou_field
  (*) 0003_redirect_url

最新の移行を新規としてマークして、実行時に処理されるようにする方法はあります./manage.py migrate cmsplugin_mailchimpか?

4

1 に答える 1

3

「移行を新規としてマークする」ための追加のオプションはありませんが、別の非常に明白な解決策があります。単に逆方向の移行を行うだけです。

$ ./manage.py migrate cmsplugin_mailchimp 0002 --fake

 - Soft matched migration 0002 to 0002_thankyou_field.
Running migrations for cmsplugin_mailchimp:
 - Migrating backwards to just after 0002_thankyou_field.
 < cmsplugin_mailchimp:0003_redirect_url
   (faked)

$ ./manage.py migrate cmsplugin_mailchimp --list

 cmsplugin_mailchimp
  (*) 0001_initial
  (*) 0002_thankyou_field
  ( ) 0003_redirect_url

これで、Southの状態がデータベースの状態と一致し、実際に最後の移行を実行できます。

$ ./manage.py migrate cmsplugin_mailchimp

Running migrations for cmsplugin_mailchimp:
 - Migrating forwards to 0003_redirect_url.
 > cmsplugin_mailchimp:0003_redirect_url
 - Loading initial data for cmsplugin_mailchimp.
Installed 0 object(s) from 0 fixture(s)
于 2012-07-11T16:58:04.413 に答える