2017-09-06 10 views
0

データベースがたくさんありますが、いくつかの主キーを持つオブジェクトを移行しようとしました。私は得続けるDjangoが移行していません

python manage.py migrate 

を:私もからモデルを削除しようとした

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/var/www/env/lib/python3.5/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line 
    utility.execute() 
    File "/var/www/env/lib/python3.5/site-packages/django/core/management/__init__.py", line 355, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/var/www/env/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/var/www/env/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute 
    output = self.handle(*args, **options) 
    File "/var/www/env/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 204, in handle 
    fake_initial=fake_initial, 
    File "/var/www/env/lib/python3.5/site-packages/django/db/migrations/executor.py", line 115, in migrate 
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards 
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/migrations/executor.py", line 244, in apply_migration 
    state = migration.apply(state, schema_editor) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/migrations/migration.py", line 129, in apply 
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/migrations/operations/models.py", line 97, in database_forwards 
    schema_editor.create_model(model) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 303, in create_model 
    self.execute(sql, params or None) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 120, in execute 
    cursor.execute(sql, params) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/backends/utils.py", line 80, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/backends/utils.py", line 65, in execute 
    return self.cursor.execute(sql, params) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/var/www/env/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise 
    raise value.with_traceback(tb) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/backends/utils.py", line 63, in execute 
    return self.cursor.execute(sql) 
    File "/var/www/env/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 326, in execute 
    return Database.Cursor.execute(self, query) 
django.db.utils.OperationalError: table "realtranslation_languageactivate" has more than one primary key 

私が実行してみたときに、しかし

python manage.py makemigrations 

それは私がやらせますmodels.py、そしてマイグレーションをやり直しても、それはなくならないでしょう。

また、テーブルをdbshel​​lにドロップしようとしましたが、そこにはありませんでした。

私のデータベースを保持するための選択肢は何ですか?最後の移行はありません。

答えて

0

最後の移行を行わずにデータベースを保持するには、そのモデルに対してmakemigrationsを実行したときに対応するマイグレーションファイルを削除するだけです。

Djangoは、単一列の主キーのみをサポートしています。複数の主キーをsqlite3テーブルに追加する場合は、soのようなテーブルを作成し、その上にモデルを追加してみてください。

おそらく、この方法に従うのがより良い解決法です。here

関連する問題