Jia*_*ing 1 django django-models
我想将我的django项目部署到生产环境,并将其与一个新的空数据库相关联,我做了如下:
但只创建了与auth相关的表(如auth_user,auth_group...),没有为我的应用程序创建数据库表
我应该如何为这种情况迁移到我的项目的新数据库?
首先,您不应该删除迁移。现在,再次进行已删除的所有迁移。
python manage.py makemigrations app_name
Run Code Online (Sandbox Code Playgroud)
对您已删除迁移的所有应用程序执行此操作。现在,将您的新数据库添加到 settings.py。不要删除旧的。例如,如果我要添加一个 MySQL 数据库,我会在 settings.py 中的 DATABASES 字典中添加以下内容:
'new': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'databasename',
'USER': 'databaseusername',
'PASSWORD': 'databasepassword',
'HOST': 'localhost',
'PORT': '3306',
}
Run Code Online (Sandbox Code Playgroud)
我已将数据库命名为“新”。现在我们有两个数据库“default”和“new”。现在您必须通过在新数据库上运行迁移来在新数据库中创建表:
python manage.py migrate --database=new
Run Code Online (Sandbox Code Playgroud)
如果要将数据传输到新数据库,可以执行这些附加步骤。首先,清除新数据库:
python manage.py flush --database=new
Run Code Online (Sandbox Code Playgroud)
现在将旧数据库中的数据导出到 json 文件中:
python manage.py dumpdata>data.json
Run Code Online (Sandbox Code Playgroud)
将此数据导入新数据库:
python manage.py loaddata data.json --database=new
Run Code Online (Sandbox Code Playgroud)
现在您可以删除“默认”数据库并将“新”数据库重命名为“默认”。
这个答案中提到的程序取自我的博客。
- 删除了我的App下的迁移文件夹
这是您的错误,您删除了迁移 - 包括初始迁移.所以当你去的时候,makemigrations你还没有初步的迁移.
所以你需要运行makemigrations <app_name>至少进行初始迁移.
如果要再次执行此操作,请不要删除迁移,只需更改数据库设置然后再迁移.
| 归档时间: |
|
| 查看次数: |
5219 次 |
| 最近记录: |