首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试运行服务器时对象名称"django_migrations“无效

尝试运行服务器时对象名称"django_migrations“无效
EN

Stack Overflow用户
提问于 2019-06-17 19:36:38
回答 1查看 1.2K关注 0票数 0

我想将我的Django应用程序连接到客户端的MSSQL数据库(之前我的应用程序在SQLite上工作)。我在他们的测试服务器上进行了迁移,并成功运行,然后他们将此数据库复制到目标服务器,当我尝试

代码语言:javascript
复制
python manage.py runserver

它向我展示了

代码语言:javascript
复制
django.db.utils.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name 'django_migrations'. (208) (SQLExecDirectW)")

这可能会有什么问题?这是我的连接:

代码语言:javascript
复制
DATABASES = {
   'default': {
       'ENGINE': 'sql_server.pyodbc',
       'NAME': 'ESD',
       'HOST': 'IPaddress',
       'USER': 'Username',
       'PASSWORD': 'Password',

       'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server'
        }
   }
}

我也尝试过迁移,它显示了相同的错误

这里有所有的错误:

代码语言:javascript
复制
(norm)esd@server:~/Desktop/norm/myproject> python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
Unhandled exception in thread started by <function wrapper at 0x7fc57eb4f8c0>
Traceback (most recent call last):
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    self.check_migrations()
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/core/management/commands/runserver.py", line 163, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/migrations/executor.py", line 20, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/migrations/loader.py", line 49, in __init__
    self.build_graph()
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/migrations/loader.py", line 176, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/migrations/recorder.py", line 66, in applied_migrations
    return set(tuple(x) for x in self.migration_qs.values_list("app", "name"))
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/models/query.py", line 258, in __iter__
    self._fetch_all()
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/models/query.py", line 1074, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/models/query.py", line 128, in __iter__
    for row in compiler.results_iter():
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/models/sql/compiler.py", line 802, in results_iter
    results = self.execute_sql(MULTI)
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/models/sql/compiler.py", line 848, in execute_sql
    cursor.execute(sql, params)
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/utils.py", line 95, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/esd/Desktop/norm/lib64/python2.7/site-packages/sql_server/pyodbc/base.py", line 537, in execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name 'django_migrations'. (208) (SQLExecDirectW)")
EN

回答 1

Stack Overflow用户

发布于 2019-06-17 21:04:39

也许您需要先运行"py manage.py makemigrations",然后再运行"py manage.py migrate".

如果不是,那么为数据库添加特定的主机和端口可能是值得的。我在使用mysql的项目中使用的内容如下所示。

代码语言:javascript
复制
> DATABASES = {
>     'default': {
>         'ENGINE': 'django.db.backends.mysql',
>         'NAME': 'pkg',
>         'HOST': '127.0.0.1',
>         'PORT': '3306',
>         'USER': 'root',
>         'PASSWD': '',
>     } }

我不确定它是否会工作,但也许值得一试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56630509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档