首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django syncdb和migrate

Django syncdb和migrate
EN

Stack Overflow用户
提问于 2012-05-31 21:05:22
回答 4查看 35.2K关注 0票数 14

我正在把django网站从一台服务器移到另一台服务器上,我试着同步数据库,所以我放入了python manage.py syncdb,我得到了这个输出:

代码语言:javascript
复制
Syncing...
Creating tables ...
The following content types are stale and need to be deleted:

    orders | ordercontact

Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.

    Type 'yes' to continue, or 'no' to cancel: no
Installing custom SQL ...
Installing indexes ...
No fixtures found.

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > django.contrib.admin
 > django.contrib.admindocs
 > django.contrib.markup
 > django.contrib.sitemaps
 > django.contrib.redirects
 > django_filters
 > freetext
 > sorl.thumbnail
 > django_extensions
 > south
 > currencies
 > pagination
 > tagging
 > honeypot
 > core
 > faq
 > logentry
 > menus
 > news
 > shop
 > shop.cart
 > shop.orders

Not synced (use migrations):
 - dbtemplates
 - contactform
 - links
 - media
 - pages
 - popularity
 - testimonials
 - shop.brands
 - shop.collections
 - shop.discount
 - shop.pricing
 - shop.product_types
 - shop.products
 - shop.shipping
 - shop.tax
(use ./manage.py migrate to migrate these)

下一步是python manage.py migrate,这是我得到的:

代码语言:javascript
复制
Running migrations for dbtemplates:
 - Migrating forwards to 0002_auto__del_unique_template_name.
 > dbtemplates:0001_initial
 ! Error found during real run of migration! Aborting.

 ! Since you have a database that does not support running
 ! schema-altering statements in transactions, we have had
 ! to leave it in an interim state between migrations.

! You *might* be able to recover with:   = DROP TABLE `django_template` CASCADE; []
   = DROP TABLE `django_template_sites` CASCADE; []

 ! The South developers regret this has happened, and would
 ! like to gently persuade you to consider a slightly
 ! easier-to-deal-with DBMS.
 ! NOTE: The error which caused the migration to fail is further up.
Traceback (most recent call last):
  File "manage.py", line 13, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/management/commands/migrate.py", line 105, in handle
    ignore_ghosts = ignore_ghosts,
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/__init__.py", line 191, in migrate_app
    success = migrator.migrate_many(target, workplan, database)
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 221, in migrate_many
    result = migrator.__class__.migrate_many(migrator, target, migrations, database)
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 292, in migrate_many
    result = self.migrate(migration, database)
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 125, in migrate
    result = self.run(migration)
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 99, in run
    return self.run_migration(migration)
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 81, in run_migration
    migration_function()
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/migration/migrators.py", line 57, in <lambda>
    return (lambda: direction(orm))
  File "/usr/lib/python2.6/site-packages/django_dbtemplates-1.3-py2.6.egg/dbtemplates/migrations/0001_initial.py", line 18, in forwards
    ('last_changed', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/db/generic.py", line 226, in create_table
    ', '.join([col for col in columns if col]),
  File "/usr/lib/python2.6/site-packages/South-0.7.3-py2.6.egg/south/db/generic.py", line 150, in execute
    cursor.execute(sql, params)
  File "/usr/lib/python2.6/site-packages/django/db/backends/util.py", line 34, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 86, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1050, "Table 'django_template' already exists")

我的问题是,我是否需要从MySQL中删除表django_templatedjango_template_sites?两个表都是空的。

我运行的是CentOS 6,django 1.3.1,Python2.6

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-06 22:52:37

试一试

代码语言:javascript
复制
syncdb --all 

因为我也有同样的问题--都能正常工作。

我在这里找到了这个解决方案https://github.com/divio/django-cms/issues/1343

票数 21
EN

Stack Overflow用户

发布于 2013-04-28 17:11:10

这可能会帮助其他遇到同样问题的人。

由于您的数据库现在要创建,并且不需要迁移,因此在完成Ahmad提到的操作之后,还要执行一次假迁移,这样south就会将所有迁移脚本标记为已运行。简而言之,运行这些。

代码语言:javascript
复制
syncdb --all
migrate --fake

请注意,如果数据库中已有数据,则不应使用syncdb --all。

票数 15
EN

Stack Overflow用户

发布于 2013-01-20 08:38:24

代码语言:javascript
复制
$python manage.py syncdb --migrate

这将迁移必须迁移的内容

为我工作(django 1.4)

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

https://stackoverflow.com/questions/10834237

复制
相关文章

相似问题

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