【问题标题】:Why is a Migration not being created in database? [closed]为什么没有在数据库中创建迁移? [关闭]
【发布时间】:2021-10-27 07:05:58
【问题描述】:

我在我的 settings.py 中将我的应用程序连接到我的数据库,然后运行迁移并创建了我的模型 0001_initial.py 文件。但是,当我尝试将这些迁移应用到数据库并创建表时,它说没有要应用的迁移并且它不会创建表。我不知道为什么。

机器 0001_initial.py

class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
    migrations.CreateModel(
        name='Appear',
        fields=[
            ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('Show', models.CharField(max_length=100)),
            ('Media', models.CharField(blank=True, choices=[('TV', 'TV'), ('Radio', 'Radio'), ('Youtube', 'Youtube'), ('Podcast', 'Podcast')], max_length=30, null=True)),
            ('Episode', models.IntegerField()),
            ('Date', models.DateField(max_length=100)),
            ('Time', models.TimeField()),
            ('Producer', models.CharField(max_length=100)),
            ('Producer_Email', models.EmailField(max_length=254)),
        ],
    ),
]

为什么没有创建表?

settings.py

INSTALLED_APPS = [
'machine.apps.MachineConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
}]

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'Houston',
    'USER': 'postgres',
    'PASSWORD': '1234',
    'HOST': 'localhost'     
}

我已经添加了我的 settings.py 希望这会有所帮助。

【问题讨论】:

  • 你能分享一下你的数据库设置吗?你确定它指向的是真实的数据库,而不是 SQLite 的吗?
  • 您可能没有在 settings.py 中正确配置您的连接。您是否更改了默认的 sqlite 数据库?你把它改成什么了?还要从 settings.py 中放入数据库连接器的代码
  • 这是您第一次将迁移应用到数据库吗?您完全确定尚未应用迁移吗?如果此应用程序有另一个使用该名称的迁移,django 将无法识别有变化
  • 确保您拥有正确的文件夹和文件结构。您的 django 应用程序必须包含 migrations 文件夹,其中包括 __init__.py 文件和 0001_initial.py 文件。此外,请确保您已在项目设置的应用程序中声明您的应用程序。然后,运行python manage.py showmigrations 以检查已应用哪些迁移。然后,运行python manage.py makemigrationspython manage.py migrate 分别生成和应用迁移。
  • 这听起来很可疑,因为这是您第一次连接到 db 并且它说没有要执行的迁移。通常,当您运行第一个“迁移”命令时,您至少会迁移内容类型和其他内置组件。所以它似乎与模型定义没有联系,而是联系。

标签: django postgresql django-models migration database-migration


【解决方案1】:

我的愚蠢错误。我正在使用数据库的主密码,但在 settings.py 文件上。我使用了默认的 postgres 密码,这就是它没有添加迁移的原因。我一更改密码,它就添加了它。

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'Houston',
    'USER': 'postgres',
    'PASSWORD': '1234',
    'HOST': 'localhost'     
}

我更改了它并使用我用来登录我的数据库的主密码并且它有效。

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'Houston',
    'USER': 'postgres',
    'PASSWORD': 'A*******',
    'HOST': 'localhost'     
}

【讨论】:

    猜你喜欢
    • 2014-09-09
    • 2014-05-03
    • 1970-01-01
    • 2016-02-10
    • 2016-10-12
    • 2019-03-30
    • 2018-09-16
    • 2021-06-17
    • 1970-01-01
    相关资源
    最近更新 更多