【发布时间】:2017-02-19 04:11:12
【问题描述】:
我正在使用多个数据库(同一个 postgresql 数据库中的不同架构)处理 Django 1.9 和 python 3.3 项目。当我第一次尝试迁移项目时,我收到了这个错误
运行迁移: 渲染模型状态...完成 正在应用 contenttypes.0001_initial... 好的 正在应用 auth.0001_initial... OK 应用 MyApp.0001_initial...Traceback(最近一次调用最后一次): 文件“/usr/lib/python3.4/site-packages/django/db/backends/utils.py”,第 64 行,在执行 返回 self.cursor.execute(sql, params) psycopg2.ProgrammingError:错误:关系“auth_user”不存在 上述异常是以下异常的直接原因: 回溯(最近一次通话最后): 文件“manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件“/usr/lib/python3.4/site-packages/django/core/management/__init__.py”,第 350 行,在 execute_from_command_line 实用程序.execute() 文件“/usr/lib/python3.4/site-packages/django/core/management/__init__.py”,第 342 行,在执行 self.fetch_command(子命令).run_from_argv(self.argv) 文件“/usr/lib/python3.4/site-packages/django/core/management/base.py”,第 348 行,在 run_from_argv self.execute(*args, **cmd_options) 文件“/usr/lib/python3.4/site-packages/django/core/management/base.py”,第 399 行,在执行中 输出 = self.handle(*args, **options) 文件“/usr/lib/python3.4/site-packages/django/core/management/commands/migrate.py”,第 200 行,在句柄中 executor.migrate(目标,计划,fake=fake,fake_initial=fake_initial) 文件“/usr/lib/python3.4/site-packages/django/db/migrations/executor.py”,第 92 行,在 migrate self._migrate_all_forwards(计划,full_plan,fake=fake,fake_initial=fake_initial) _migrate_all_forwards 中的文件“/usr/lib/python3.4/site-packages/django/db/migrations/executor.py”,第 121 行 state = self.apply_migration(状态,迁移,fake=fake,fake_initial=fake_initial) 文件“/usr/lib/python3.4/site-packages/django/db/migrations/executor.py”,第 198 行,在 apply_migration state = migration.apply(state, schema_editor) 文件“/usr/lib/python3.4/site-packages/django/db/backends/base/schema.py”,第 90 行,在 __exit__ 自我执行(sql) 文件“/usr/lib/python3.4/site-packages/django/db/backends/base/schema.py”,第 110 行,在执行 cursor.execute(sql,参数) 文件“/usr/lib/python3.4/site-packages/django/db/backends/utils.py”,第 79 行,在执行中 return super(CursorDebugWrapper, self).execute(sql, params) 文件“/usr/lib/python3.4/site-packages/django/db/backends/utils.py”,第 64 行,在执行 返回 self.cursor.execute(sql, params) 文件“/usr/lib/python3.4/site-packages/django/db/utils.py”,第 95 行,在 __exit__ 六.reraise(dj_exc_type,dj_exc_value,回溯) 文件“/usr/lib/python3.4/site-packages/django/utils/six.py”,第 685 行,在 reraise 提高 value.with_traceback(tb) 文件“/usr/lib/python3.4/site-packages/django/db/backends/utils.py”,第 64 行,在执行 返回 self.cursor.execute(sql, params) django.db.utils.ProgrammingError:错误:关系“auth_user”不存在auth_user 表未迁移时,其他项目中似乎出现此错误。在我的情况下,在迁移需要它的应用程序之前使用 manage.py migrate auth 开始迁移并不能解决问题。
我怀疑问题来自在 Django 中使用不同的数据库。我的auth_user 表存储在默认数据库中,models.py 的内容被路由到其他数据库。
迁移过程是否在与我的应用数据库相同的数据库中查找 auth_user 表?是不是完全不一样?
【问题讨论】:
标签: django postgresql django-migrations django-users django-database