現在のプロジェクトには約620のdjangoモデルがあり、移行に約1時間かかります。 。 (移行中にgcloud上に1.2gigの30gigのRAMを持つ8コアのIntel Skylakeの12.x%のみを使用します)、このメトリックはpgとpython 2(cpython)のために組み合わされます。私は、移行中に単一のコアだけが使用されると仮定します。 [セロリプロセスは100%CPU + 50%のラムを使用します。 ]並行してdjangoで移行を実行しますか?
各移行は、彼らが同一であるが、フィールドにいくつかのマイナーな変更である、などの
class Migration(migrations.Migration):
initial = True
dependencies = [
('dist', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='model name',
fields=[
...
...
60 fields
...
...
],
options={
'abstract': False,
},
),
]
です。
このデータベースをより早く移行する方法はありますか?並行して移行を実行できますか? 30以降の移行(内部アプリとdist)は互いに関連していないため、これらの移行を並行して実行できますか?
は(例えば1つの移行がモデルを作成し、別のは、それを修正したシナリオを考えてみません、移行が(正当な理由のために)連続して適用されるように設計されています
私は、最初の30秒後の移行は、互いに同一であり、独立していると言いました。私が移行プロセスを壊した場合、中止したところからやり直すことができます。それで、それをパラレルに適用するのは意味がありますか? – Marty
彼らはお互いに依存しています - 'Migration'クラスの' dependencies'フィールドを見てください。システムが設計されているため、並列にマイグレーションを適用する方法はありません。マイグレーションシステムを破壊する可能性があります。 – rafalmp