首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么南迁失败了?

为什么南迁失败了?
EN

Stack Overflow用户
提问于 2012-10-19 19:27:18
回答 1查看 1.7K关注 0票数 1

我有一个刚刚创建的空白MySQL数据库。south在我的INSTALLED_APPS中。

我运行:

代码语言:javascript
复制
$ ./manage.py syncdb
...
Creating table some_app_table

You just installed Django's auth system, which means you don't have any superusers defined.
...
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
...

Not synced (use migrations):
 - myapp
...
代码语言:javascript
复制
$ ./manage.py schemamigration myapp --initial
 + Added model myapp.Model
...
Created 0003_initial.py. You can now apply this migration with: ./manage.py migrate myapp
代码语言:javascript
复制
$ ./manage.py migrate myapp
Running migrations for myapp:
 - Migrating forwards to 0003_initial.
 > skan:0001_initial
 > skan:0002_initial
FATAL ERROR - The following SQL query failed: CREATE TABLE `myapp_model` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `user_id` integer NULL, `name` varchar(200) NOT NULL);
The error was: (1050, "Table 'myapp_model' already exists")

到底怎么回事?为什么South不能正确初始化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-19 20:43:53

您已经定义了一些迁移:initial (正如预期的那样)仅用于初始迁移。

您的syncdb输出显示:

代码语言:javascript
复制
Not synced (use migrations):
 - myapp

这表明南方正在像预期的那样工作。但是,然后你会这样做:

代码语言:javascript
复制
$ ./manage.py schemamigration myapp --initial
+ Added model myapp.Model
...
Created 0003_initial.py. You can now apply this migration with: ./manage.py migrate myapp

请注意0003-prefix:这(很可能)表示已经定义了迁移。下一条命令的输出确认了这一点:

代码语言:javascript
复制
$ ./manage.py migrate myapp
Running migrations for myapp:
 - Migrating forwards to 0003_initial.
 > skan:0001_initial
 > skan:0002_initial
 <snip>

换句话说,您已经有两个initial迁移,其中至少有一个将创建该表。您的#3迁移再次尝试这样做,但失败了,因为表当然已经存在了。

您需要做的是只在创建Django应用程序时使用initial。一旦migrations文件夹包含一个名为0001_initial.py的文件,您就不再需要任何初始迁移。如果您从此更改表,请使用auto调用它,然后迁移:

代码语言:javascript
复制
./manage.py schemamigration myapp --auto
./manage.py migrate myapp
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12973282

复制
相关文章

相似问题

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