Django with docker不运行自定义应用程序的迁移

2024-04-24 13:04:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在项目的根目录中创建了一个名为bay的自定义应用程序,其结构如下-

project_root/  
   - bay/
       - migrations/
           - __init__.py
           - 0001_initial.py
       - models/
           - __init__.py
           - document.py
           - ... (other model files)

当我试图从我的一个自定义应用程序的模型中保存一个新的模型实例时,我得到以下错误-

^{pr2}$

因此,给定模型的迁移尚未运行。所以,我试着用-

sudo docker-compose -f dev.yml run django python manage.py migrate

结果是

Postgres is up - continuing...
Operations to perform:
  Apply all migrations: account, admin, auth, contenttypes, sessions, sites, socialaccount, users
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0001_initial... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying users.0001_initial... OK
  Applying account.0001_initial... OK
  Applying account.0002_email_max_length... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying sessions.0001_initial... OK
  Applying sites.0001_initial... OK
  Applying sites.0002_alter_domain_unique... OK
  Applying sites.0003_set_site_domain_and_name... OK
  Applying socialaccount.0001_initial... OK
  Applying socialaccount.0002_token_max_lengths... OK
  Applying socialaccount.0003_extra_data_default_dict... OK
  Applying users.0002_auto_20170419_1104... OK

上面显然没有显示它应该运行的bay.0001_initial迁移。所以,我继续看看

sudo docker-compose -f dev.yml run django python manage.py makemigrations bay

结果是

Postgres is up - continuing...
Migrations for 'bay':
  bay/migrations/0001_initial.py:
    - Create model Brand
    - Create model ...
    - ...

如果我再次尝试运行migrate命令,它会显示No migrations to apply。在


Tags: namepy模型应用程序modelinitmigrationsok
1条回答
网友
1楼 · 发布于 2024-04-24 13:04:49

我认为这是文件权限问题,是在我的__init__.py文件夹和migrations文件夹中的__init__.py文件和__pycache__文件夹上的锁符号。最初忽略了它,因为它与我现有应用程序的migrations文件夹中的类似,但是这些迁移运行得很好。在

删除了我的自定义应用程序中的migrations文件夹,运行了makemigrations命令,然后migrate成功-

Postgres is up - continuing...
Operations to perform:
  Apply all migrations: account, admin, auth, bay, contenttypes, sessions, sites, socialaccount, users
Running migrations:
  Applying bay.0001_initial... OK

相关问题 更多 >