【发布时间】:2017-11-16 01:05:31
【问题描述】:
我一直在使用 django 迁移来处理数据库。最近,我将会话分为两部分,一是阅读,一是写作。完成此操作后,我制作了添加新表并运行它的新迁移文件。成功了,
Operations to perform:
Apply all migrations: food
Running migrations:
Applying food.0107_auto_20171116_0849... OK
但是,当我使用 shell 检查 mysql 数据库时,没有新表。我删除了 django 迁移历史并尝试了几次,但结果是一样的。它说已应用迁移,但没有新表。这是我的迁移文件
# -*- coding: utf-8 -*-
# Generated by Django 1.11.2 on 2017-11-16 08:49
from __future__ import unicode_literals
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('bubi', '0106_auto_20171110_1452'),
]
operations = [
migrations.CreateModel(
name='FoodHistory',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('date', models.DateField(verbose_name='updated date')),
],
options={
'verbose_name': 'food updated date',
'verbose_name_plural': 'food updated date',
},
),
]
我想知道拆分会话是否会影响迁移。谢谢!
编辑
我添加了我的 local_settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'food',
'HOST': '127.0.0.1',
'USER': 'apple',
'PASSWORD': 'apple'
},
'read': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'food',
'HOST': '127.0.0.1',
'USER': 'apple',
'PASSWORD': 'apple'
},
'write': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'food',
'HOST': '127.0.0.1',
'USER': 'apple',
'PASSWORD': 'apple'
}
}
【问题讨论】:
-
您确定连接到正确的数据库吗?你在你的项目目录中看到了一个名为
db.sqlite3的文件吗? -
@chris 我添加了我的 local_settings.py,我不使用 db.sqlite3,我使用 mysql。
-
我知道您正在尝试使用 MySQL。我想知道它是否真的这样工作。
python manage.py sqlmigrate food 0107给了什么? -
@chris 上面写着
Running migrations: Applying bubi.0107_auto_20171116_0849... OK但没有桌子 -
这不是我要问的输出。那是给
migrate的;我在问sqlmigrate。它应该输出一些 SQL 代码。