タグ付けされた質問 「django-migrations」

8
最後の移行を元に戻す方法は?
新しいテーブルを追加する移行を行ったので、新しい移行を作成せずに、それを元に戻して移行を削除したい。 どうすればいいのですか?最後の移行を元に戻すコマンドはありますか?その後、移行ファイルを削除できますか?

12
モデルおよび関係フィールドの名前を変更するためのDjango移行戦略
名前を変更したいモデルとの外部キー関係を持つ他の多くのモデルが存在する既存のDjangoプロジェクトで、いくつかのモデルの名前を変更することを計画しています。これには複数の移行が必要になると確信していますが、正確な手順はわかりません。 と呼ばれるDjangoアプリ内の次のモデルから始めるとしましょうmyapp: class Foo(models.Model): name = models.CharField(unique=True, max_length=32) description = models.TextField(null=True, blank=True) class AnotherModel(models.Model): foo = models.ForeignKey(Foo) is_awesome = models.BooleanField() class YetAnotherModel(models.Model): foo = models.ForeignKey(Foo) is_ridonkulous = models.BooleanField() Foo名前は実際には意味がなく、コードに混乱を引き起こしているため、モデルの名前を変更します。これにより、名前がBarより明確になります。 Django開発ドキュメントで読んだことから、次の移行戦略を想定しています。 ステップ1 変更models.py: class Bar(models.Model): # <-- changed model name name = models.CharField(unique=True, max_length=32) description = models.TextField(null=True, blank=True) class AnotherModel(models.Model): foo …

29
Django 1.7-makemigrationsが変更を検出しない
タイトルのとおり、移行がうまくいかないようです。 アプリはもともと1.6未満だったので、最初は移行が行われないことを理解しています。実際に実行するpython manage.py migrateと、次のようになります。 Operations to perform: Synchronize unmigrated apps: myapp Apply all migrations: admin, contenttypes, auth, sessions Synchronizing apps without migrations: Creating tables... Installing custom SQL... Installing indexes... Running migrations: No migrations to apply. でモデルに変更を加えてもmyapp、期待どおりに未移行と表示されます。 しかし、実行するpython manage.py makemigrations myappと、次のようになります。 No changes detected in app 'myapp' コマンドの実行内容や実行方法は重要ではないようです。アプリが変更されたことを検出したり、移行ファイルをアプリに追加したりすることはありません。 アプリを強制的に移行し、基本的に「これは私の作業のベースです」と言う方法などはありますか?それとも何か不足していますか? 私のデータベースはPostgreSQLのデータベースです。

30
Django-makemigrations-変更は検出されませんでした
makemigrationsコマンドを使用して既存のアプリ内に移行を作成しようとしましたが、「変更は検出されませんでした」と出力されます。 通常、startappコマンドを使用して新しいアプリを作成しますが、作成時にこのアプリで使用しませんでした。 デバッグ後、migrationsパッケージ/フォルダーがアプリから欠落しているため、移行を作成していないことがわかりました。 フォルダーがない場合やフォルダーがない場合は、フォルダーを作成した方がよいでしょうか。

5
Django-DB-Migrations:保留中のトリガーイベントがあるため、ALTER TABLEを実行できません
TextFieldからnull = Trueを削除したい: - footer=models.TextField(null=True, blank=True) + footer=models.TextField(blank=True, default='') スキーマの移行を作成しました: manage.py schemamigration fooapp --auto いくつかのフッターの列が含まれているのでNULL、私はこれを取得error、私は、マイグレーションを実行する場合: django.db.utils.IntegrityError:列 "footer"にnull値が含まれています これをスキーマの移行に追加しました: for sender in orm['fooapp.EmailSender'].objects.filter(footer=None): sender.footer='' sender.save() 今私は得る: django.db.utils.DatabaseError: cannot ALTER TABLE "fooapp_emailsender" because it has pending trigger events なにが問題ですか?

2
Django 1.7の初期移行から移行するにはどうすればよいですか?
いくつかのモデルを使用して新しいアプリを作成しましたが、一部のモデルが十分に検討されていないことに気付きました。私はコードをコミットしていなかったので、賢明なことは、データベースを最後の良好な状態に移行し、より良いモデルで移行をやり直すことです。この場合、最後の良好な状態は、新しいアプリが存在しないデータベースです。 Django 1.7で最初の移行から移行するにはどうすればよいですか? 中South1が行うことができます: python manage.py migrate <app> zero <app>移行履歴から消去され、のすべてのテーブルが削除されます<app>。 Django 1.7の移行でこれを行う方法は?

7
Django 1.7で単体テストを実行するときに移行を無効にする
Django 1.7では、データベースの移行が導入されました。 Django 1.7でユニットテストを実行すると、移行が強制的に行われ、時間がかかります。だから私はdjangoの移行をスキップして、最終的な状態でデータベースを作成したいと思います。 コードのその部分はテストされないので、移行を無視することは悪い習慣になることを知っています。しかし、そうではありません。CIテストサーバー(ジェンキンス)で完全な移行を実行しています。速度が重要なローカルテストでは、移行をスキップしたいだけです。 いくつかのコンテキスト: Django 1.6まで、Southを使用するときは、SOUTH_TESTS_MIGRATE設定を使用していました。 デフォルトでは、Southのsyncdbコマンドは、非インタラクティブモードで実行されている場合、移行を適用します。これには、テストの実行時も含まれます。テストを実行するたびにすべての移行が実行されます。 テストランナーで移行の代わりにsyncdbを使用する場合-たとえば、移行の適用に時間がかかりすぎる場合は、settings.pyでSOUTH_TESTS_MIGRATE = Falseを設定するだけです。 ただし、syncdbはもう存在していません。現在は移行しています。 Django 1.8以降は--keepdbパラメータを使用します。 --keepdbオプションを使用すると、テスト実行間でテストデータベースを保持できます。これには、作成アクションと破棄アクションの両方をスキップするという利点があり、特に大規模なテストスイートでのテストの実行時間を大幅に短縮します。テストデータベースが存在しない場合、最初の実行時に作成され、その後の実行ごとに保存されます。適用されていない移行は、テストスイートを実行する前にテストデータベースにも適用されます。 したがって、この質問はDjango 1.7に限定されています。

11
Django 1.7での移行を簡素化する方法
南についても同様の質問がありますが、私はDjango 1.7でプロジェクトを開始し、南を使用していません。 開発中に多くの移行が作成されましたが、ソフトウェアはまだ提供されておらず、移行する必要のあるデータベースはありません。したがって、現在のモデルが元のモデルであるかのように移行をリセットし、すべてのデータベースを再作成したいと思います。 それを行うための推奨される方法は何ですか? 編集:Django 1.8以降では、squashmigrationsという名前の新しいコマンドがあり、ここで説明する問題を多かれ少なかれ解決します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.