【问题标题】:Reset SQLite database in Django在 Django 中重置 SQLite 数据库
【发布时间】:2016-09-02 04:19:37
【问题描述】:

我正在尝试重构一个 Django 项目。我重命名了几个应用程序并添加了一个新应用程序,并改组了一些模型。我想清除我的数据库和迁移并重新开始,但我不确定如何完成此操作。这是我所做的:

rm -r myapp/migrations // I ran this for all my apps    
python manage.py flush
python manage.py makemigrations myapp // I ran this for all my apps
python manage.py migrate // This errors

我收到一个错误:

django.db.utils.OperationalError: table "myapp_mymodel" already exists

谁能告诉我我做错了什么?

编辑:What is the django command to delete all tables? 不起作用。

【问题讨论】:

标签: python django sqlite


【解决方案1】:

如果您想按照以下步骤清除 sqlite3 数据库,这可能会对您有所帮助。

  1. 删除除 init.py
  2. 之外的迁移文件
  3. 删除 dbsqlit3 文件
  4. 然后输入python/python3 manage.py migrate
  5. 然后对模型进行更改
  6. 输入python/python3 manage.py makemigrations
  7. 输入python/python3 manage.py migrate
  8. 然后您只需键入 python/python3 manage.py createsuperuser 即可创建新的超级用户。您应该使用新名称而不是旧用户名

【讨论】:

    【解决方案2】:

    对我来说,只是

    python manage.py flush
    

    删除了旧的数据库内容,所以我能够在 Django 2.1.4 中重新创建记录。

    不要忘记创建新的超级用户:

    python manage.py createsuperuser
    

    【讨论】:

      【解决方案3】:

      不要删除您的数据库文件!

      删除迁移文件然后运行flush是正确的,但是删除sqlite数据库文件是错误的。这对我每次都有效。如果您使用其他数据库,它将为您节省大量工作和准备工作。

      1. 手动删除所有“.py”和“.pyc”文件
      2. python manage.py flush
        输入“yes”确认
      3. python manage.py makemigrations
      4. python manage.py 迁移

      【讨论】:

        【解决方案4】:

        我有同样的问题,使用 Django 1.10,我就是这样做的,我删除了数据库 sqlite 文件,删除了每个应用程序中的 pycache 文件夹,删除了迁移文件夹中的所有文件对于每个应用程序,除了 init.py 文件,然后运行 ​​python manage.py makemigrationspython manage.py migrate。另请注意,由于您删除了数据库,因此您必须使用python manage.py createsuperuser 创建一个新的超级用户。希望这会有所帮助

        【讨论】:

        • 谢谢。这对我有帮助
        【解决方案5】:

        删除数据库并删除应用程序的migrations 目录中的迁移文件(.py.pyc)(不要删除__init__.py 文件)。然后运行python manage.py makemigrations apppython manage.py migrate

        【讨论】:

        • 应该先运行哪个? “python manage.py makemigrations app”还是“python manage.py migrate”?
        • python manage.py makemigrations app 显然 - 你必须有一些东西要迁移
        • 删除迁移文件然后运行flush是正确的,但是删除sqlite数据库文件是错误的。这对我每次都有效。如果您使用其他数据库,它将为您节省大量工作和准备工作。 1) 删除所有 ".py" 和 ".pyc" 文件 2) >python manage.py flush type "yes" 确认 3) >python manage.py makemigrations 4) >python manage.py migrate
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-20
        • 1970-01-01
        • 2020-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多