2016-12-05 15 views
0

herokuに新しいデータベースを設定するには、python manage migrateを試しましたが、relation already exists/does not existsに関する多くの例外がありました。だから私はここの指示に従ったdjango 1.9: ProgrammingError: relation "users_user" does not existしかし、それは動作しませんでした。Django:ProgrammingError関係はありません

~ $ django-admin showmigrations 
admin 
[ ] 0001_initial 
[ ] 0002_logentry_remove_auto_add 
auth 
[ ] 0001_initial 
[ ] 0002_alter_permission_name_max_length 
[ ] 0003_alter_user_email_max_length 
[ ] 0004_alter_user_username_opts 
[ ] 0005_alter_user_last_login_null 
[ ] 0006_require_contenttypes_0002 
[ ] 0007_alter_validators_add_error_messages 
[ ] 0008_alter_user_username_max_length 
contenttypes 
[ ] 0001_initial 
[ ] 0002_remove_content_type_name 
dashboard 
[ ] 0001_squashed_0024_auto_20161205_2214 (24 squashed migrations) 
sessions 
[ ] 0001_initial 

と私はここでmigrate

~ $ python manage.py migrate 
Operations to perform: 
    Apply all migrations: admin, auth, contenttypes, dashboard, sessions 
Running migrations: 
    Applying contenttypes.0001_initial... OK 
    Applying auth.0001_initial... OK 
    Applying admin.0001_initial... OK 
    Applying admin.0002_logentry_remove_auto_add... OK 
    Applying contenttypes.0002_remove_content_type_name... OK 
    Applying auth.0002_alter_permission_name_max_length... OK 
    Applying auth.0003_alter_user_email_max_length... OK 
    Applying auth.0004_alter_user_username_opts... OK 
    Applying auth.0005_alter_user_last_login_null... OK 
    Applying auth.0006_require_contenttypes_0002... OK 
    Applying auth.0007_alter_validators_add_error_messages... OK 
    Applying auth.0008_alter_user_username_max_length... OK 
    Applying dashboard.0001_squashed_0024_auto_20161205_2214...Traceback (most recent call last): 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
psycopg2.ProgrammingError: relation "dashboard_dashboards" does not exist 


The above exception was the direct cause of the following exception: 

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 359, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 294, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 345, in execute 
    output = self.handle(*args, **options) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 204, in handle 
    fake_initial=fake_initial, 
    File "/app/.heroku/python/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 "/app/.heroku/python/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 "/app/.heroku/python/lib/python3.5/site-packages/django/db/migrations/executor.py", line 244, in apply_migration 
    state = migration.apply(state, schema_editor) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 92, in __exit__ 
    self.execute(sql) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 112, in execute 
    cursor.execute(sql, params) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise 
    raise value.with_traceback(tb) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
django.db.utils.ProgrammingError: relation "dashboard_dashboards" does not exist 

を実行したときにpostgresqlherokusqlite3データベースでローカルに実行ではなく、とき0001_squashed_0024_auto_20161205_2214.py

operations = [ 
     migrations.CreateModel(
      name='Dashboards', 
      fields=[ 
       ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 
       ('dashboard_name', models.CharField(max_length=200, unique=True, verbose_name='Dashboard Name')), 
       ('create_date', models.DateTimeField(auto_now=True, verbose_name='Dashboard Create Date')), 
       ('advisory_end_date', models.DateField(verbose_name='End date of Advisory Process')), 
       ('advisory_start_date', models.DateField(verbose_name='Start date of Advisory Process')), 
       ('number_of_teams', models.IntegerField(verbose_name='Number of teams')), 
      ], 
     ), 
     migrations.AlterModelOptions(
      name='dashboards', 
      options={'verbose_name': 'Dashboard', 'verbose_name_plural': 'Dashboards'}, 
     ), 
     migrations.RenameModel(
      old_name='Dashboards', 
      new_name='Dashboard', 
     ), 
     migrations.RenameField(
      model_name='dashboard', 
      old_name='dashboard_name', 
      new_name='name', 
     ), 
     migrations.AlterField(
      model_name='dashboard', 
      name='create_date', 
      field=models.DateTimeField(auto_now_add=True, verbose_name='Dashboard Create Date'), 
     ), 

の関連部分は、マイグレーションが正常に動作しています。

+0

'python manage.py makemigrations --fake'を実行しようとすると、以前の移行は無視され、現在のものが適用されます。 –

答えて

1

私自身も同様の問題がありました。移行を圧迫する問題は、まだ作成されていないテーブルもありますが、djangoは関係を作成するためにそれらにアクセスしようとします。

あなたは

1を行うことができる2つのものがあります)への移行に

2を押し潰していない)移動中関係を削除します。 makemigrationを実行して関係を単独で作成し、その後で移行します。

削除する必要がある行が不明です。それは私には明らかではない。以下の3つの選択肢のうちの1つ、その一部、またはすべてを選択できます。

migrations.RenameModel(
     old_name='Dashboards', 
     new_name='Dashboard', 
    ), 

    migrations.AlterModelOptions(
     name='dashboards', 
     options={'verbose_name': 'Dashboard', 'verbose_name_plural': 'Dashboards'}, 
    ), 

    migrations.AlterField(
     model_name='dashboard', 
     name='create_date', 
     field=models.DateTimeField(auto_now_add=True, verbose_name='Dashboard Create Date'), 
    ), 

まだ作成されていないモデルを変更しようとしているためです。

関連する問題