列 'django_migrations.id'有不支持的类型 'serial'[与 Amazon Redshift]
我使用django_celery连接到亚马逊红移.为了迁移数据库,在" makemigrations"之后,我使用了命令" python manage.py迁移",并且显示错误消息如下所示. 原因是RedShift不支持数据类型"串行",而是自动创建包含"串行"类型的" django_migrations"表. 如何停止django迁移创建此表或避免在" django_migrations"表上使用串行. D:\code\test_celery_django>python manage.py migrate Traceback (most recent call last): File "manage.py", line 10, in execute_from_command_line(sys.argv) File "C:\Python27\lib\site-packages\django\core\management\__init_
4 2024-01-24
编程技术问答社区
Elastic Beanstalk平台钩子不再运行了
我正在通过Elastic Beanstalk托管一个站点,并且我在.platform/hooks/postdeploy中有一个01_migrate.sh文件,以便将模型更改为Amazon RDS上的Postgres数据库: #!/bin/sh source /var/app/venv/staging-LQM1lest/bin/activate python /var/app/current/manage.py migrate --noinput python /var/app/current/manage.py createsu python /var/app/current/manage.py collectstatic --noinput 当我检查挂钩日志时,这曾经用来工作良好,尽管似乎找到了文件,但没有输出来表明迁移命令已运行 即.以前,即使没有新迁移,我也会得到以下内容: 2022/03/29 05:12:56.530728 [INFO] Running c
Django迁移策略与AWS ECS Fargate?
使用ECS Fargate运行数据库迁移的推荐部署策略是什么? 我可以在启动Gunicorn服务器之前更新容器命令以运行迁移.但这可能导致同时执行的同时执行,如果有多个实例. 我还必须考虑图像已经在运行的事实.如果我弄清楚如何在新图像启动和运行之前运行迁移,我必须考虑以下事实:旧图像仍在旧代码上运行,并可能破坏或可能引起奇怪的数据腐败副作用. 我正在考虑创建一个新的ECS :: TaskDefinition.拥有一个运行迁移的一次性迁移脚本.然后容器关闭.我将所有其他任务定义更新以使其具有依赖子,以便它们不会启动直到结束. 解决方案 我可以在启动Gunicorn服务器之前更新容器命令以运行迁移.但这可能导致同时执行的同时执行,如果有多个实例. 这是一种可能的解决方案.为了避免并发问题,您将不得不在容器脚本中添加某种分布式锁定,以在运行迁移之前从DynamoDB或其他内容中抓住锁定.我已经看到这样做了. 我建议的另一个选择是从AWS CodeBui
14 2024-01-24
编程技术问答社区
在迁移中移动Wagtail页面
我正在重组我的wagtail应用程序以删除其中只有一个物品的indexpage,然后将该项目移至当前Indexpage的父母的孩子. 基本上是从中移动的: Page--| |--IndexPage--| |--ChildPages(其中只有1个) : Page--| |--ChildPage 我已经对模型进行了更改,因此该结构用于创建新内容并修复了相关视图,以直接指向子页面.但是现在,我想将当前数据迁移到新结构,我不确定如何处理……理想情况下,这是在迁移中完成的,因此我们不必手工进行任何此操作. 是否有一种方法可以在迁移期间以编程方式移动这些子页面? 解决方案 不幸的是,有一个严格的限制(可能)排除了在迁移中进行页面树调整的可能性:在模型上以及内部以及内部的方法实现了诸如插入,移动和删除页面之类的树操作,以及迁移您只能访问该模型的"虚拟"版本,这仅使您可以访问数据库字段和基本ORM方法,而不是这些自定义方法. (您可以通过将from wa
0 2023-11-26
编程技术问答社区
在django 1.11中无法摆脱 "不存在的父节点"。
到目前为止,我已经尝试了互联网在这个问题上给我的任何事情,但我仍然没有解决. python 3.6.1 -django 1.11.2 -virtualenv 我有一个带有两个应用程序account和app2的Django项目.最近,随着项目的增长,我决定将它们分成更合适的应用程序.现在,我共有8个应用程序,其中account被分为user_auth和user,然后删除了account.要整理它,我将所有应用程序从根文件夹移动到/apps/. 到目前为止,只有user, user_auth, app2在未受app2的情况下使用. 每个单独文件中的代码被拆分,移至指定的应用程序并进行了重新编码以从正确的路径中获取导入. 要重新开始启动,我删除了db.sqlite3文件,删除了所有*.pyc文件,删除了所有__pycache__文件夹并清空了migrations文件夹,请确保保留所有__init__.py文件. 通过Virtualenv运行python manage.p
0 2023-11-19
编程技术问答社区
Django迁移(makemigrations)是否应该比创建模型单独提交?
对我来说,哪种策略在控制django或任何其他网络框架中更好的策略: 分别致力于创建模型和运行makemigrations. 将这两个任务提交两个任务. 我认为自己的第一个策略是更好的,因为migration在运行makemigrations后创建的文件.但是我需要确定哪一个更好.有什么标准吗? 解决方案 您列出的策略都可以使用.但是选项一个更好. 您可以将Django迁移与其他更改分开,以便可以从提交历史上更清楚地跟踪模型的更改.
0 2023-11-18
编程技术问答社区
在vagrant中创建Django应用程序的迁移文件夹时,权限被拒绝了
我试图从1.4 升级到Django 1.8 我试图在Vagrant环境中运行以下命令 $ python manage.py makemigrations [app_name] 并得到了此错误 trackback(最近的最新通话):文件" manage.py",第9行,in execute_from_command_line(sys.argv)文件"/srv/www/[project]/shared/env/local/lib/lib/python2.7/site-packages/django/django/core/management/management/management/management/strong> strong> strong> intstrong> inittrong> ininit .py" ,,,, 第338行,在execute_from_command_line中 utility.execute()file"/srv/www/[proje
6 2023-11-12
编程技术问答社区
带有uuid字段的Django迁移会产生重复的值
我有一个uuid字段(不是主键).生成的迁移是: from __future__ import unicode_literals from django.db import migrations, models import uuid class Migration(migrations.Migration): dependencies = [ .... ] operations = [ ... migrations.AddField( model_name='device', name='uuid', field=models.UUIDField(default=uuid.uuid4, unique=True), ), ... ] 但是当做python manage.py migrat
4 2023-11-12
编程技术问答社区
InvalidBasesError。无法解决[<模型状态: 'users.GroupProxy'>]的基础。
当我运行测试时,我会在数据库初始化期间获得此错误: django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [] This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth) 我为contry.auth组模型创建了此代理,以将其放置在我的django admin的应用中: class GroupProxy(Group): class Meta: proxy = True verbose_name = Group._meta.verbose_name verbose_name_plural = Group._meta.verbose_name_plu
8 2023-11-07
编程技术问答社区
在Django 1.7中运行单元测试时禁用迁移功能
django 1.7 引入数据库迁移. 在Django 1.7中运行单元测试时,它会迫使A 迁移,这需要很长时间.因此,我想跳过Django迁移,并在最终状态下创建数据库. 我知道忽略迁移可能是一个不良的做法,因为代码的那一部分不会被测试.但事实并非如此:我正在CI测试服务器(Jenkins)中运行完整的迁移.我只想跳过我的本地测试中的迁移,速度很重要. 一些上下文: 直到django 1.6 ,当使用南方时,我使用 默认情况下,如果南方命令在非相互作用模式下运行,则South的SynCDB命令也将应用迁移,其中包括您运行测试时 - 每次运行测试时,它将运行每个迁移. > 如果您希望测试跑步者使用syncdb而不是迁移 - 例如,如果您的迁移花费太长而无法应用 - 只需设置south_tests_migrate = false insting.py.py. 但是, syncdb 不再存在,现在是迁移. 和django 1.8 我将使用 - k
12 2023-11-07
编程技术问答社区
使用Django-todo时,在空数据库中运行makemigrations时,出现 "操作错误:没有这样的表:django_site"
我继承了另一个开发人员的Django 1.11.6应用程序.现在,在对代码和数据模型进行了很多更改之后,我想从头开始重新创建SQLite数据库. 但是,当我在项目目录中运行manage.py makemigrations(没有迁移文件和数据库)时,我会收到以下错误消息: C:\Django_DEV>python manage.py makemigrations --settings=mysite.settings_dev Traceback (most recent call last): File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\db\backends\utils.py", line 65, in execute return self.cursor.execute(sql, params) File "C:\Program Files (x86)\Python36-3
6 2023-09-22
编程技术问答社区
尝试在Django 1.9中迁移-奇怪的SQL错误 "django.db.utils.OperationalError: near ") ": syntax error"
我不知道导致此错误的原因.这似乎是一个没有解决问题的错误.谁能告诉我我可能如何解决这个问题?这让我无休止.谢谢. Operations to perform: Apply all migrations: admin, contenttypes, optilab, auth, sessions Running migrations: Rendering model states... DONE Applying optilab.0006_auto_20160621_1640...Traceback (most recent call last): File "manage.py", line 10, in execute_from_command_line(sys.argv) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 353,
16 2023-09-22
编程技术问答社区
从Django 1.6升级到1.9: python manage.py迁移失败
我正在生产上运行Django 1.6.6,最近在登台(开发服务器)上升级到1.9.7.此更新是在服务器上执行的,我遵循此处概述的步骤从南方升级. 我注意到迁移文件的结构已更改,它们不再包括create语句.这会引起问题,因为如果我从github repo中提取此新代码并运行python manage.py makemigrations或python manage.py migrate,它说: django.db.utils.OperationalError: no such table: appname_modelname 追溯指向我的urls.py,因为我在querySet中引用了该模型: queryset=list(chain(models.modelname.objects.filter(booleanField=True).order_by(object), models.aDifferentModel.objects.all())), 在1.9升级
14 2023-09-21
编程技术问答社区
Django 迁移默认值可调用生成相同条目
我将一个新字段添加到现有的DB表中.它应该通过字符串自动生成. 这是我的代码: from django.utils.crypto import get_random_string ... Model: verification_token = models.CharField(max_length=60, null=False, blank=False, default=get_random_string) 我使用./manage.py makemigrations生成迁移文件,并生成一个文件. 我验证新文件的默认文件设置为field=models.CharField(default=django.utils.crypto.get_random_string, max_length=60) 所以一切都很好. 继续使用./manage.py migrate终端没有错误. 但是,当我检查表时,我会看到所有token字段都充满了相同的值. 这是我做错的事情吗
8 2023-07-22
编程技术问答社区
使用 OneToOne 字段扩展站点对象后,迁移应用于 site-packages.django.contrib.sites,而非本地应用程序
我从 a>答案以扩展使用Django站点框架在初始迁移期间创建的默认站点对象.新的模型SiteSettings与站点模型建立了一条接通关系,以添加其他字段.然后,我使用信号来创建siteSettings对象. 当我为siteSettings模型进行第一次迁移时,一切似乎都很好.创建了一个与默认站点对象有接吻关系的站点对象. 但是,我没有注意到的是,我的本地应用程序未创建迁移文件.我能够进行迁移并迁移良好,因此我不确定迁移去了哪里.它没有在我的迁移表中列出. 无论如何,由于它起作用,所以我没有注意到.然后,我每天或两天后继续将其他字段添加到SiteSettings,并在进行这些迁移时注意到,它们是为了创建一个站点模型,而不是更新其字段.那时我注意到第一个迁移不是在正确的位置创建的.创建了第二个迁移,但是它是在site-packages/django/contrib/sites/migrations/中创建的.看起来这样: class Migration(migrat
10 2023-07-22
编程技术问答社区
即使在我保存应用程序并将其添加到 installedApps 中之后,Django 模型也不会迁移
from django.db import models from django.contrib.auth import get_user_model user = get_user_model # Create your models here. class Post(models.Model): title = models.CharField(max_length=200) text = models.TextField(max_length=100) author = models.ForeignKey( user, on_delete=models.CASCADE) created_date = models.DateTimeField() published_date = models.DateTimeField() 我运行时: python manage.py migrate 然后显示
6 2023-07-22
编程技术问答社区
在 django 迁移过程中处理数据?
class Material(models.Model): name = models.CharField(max_length=50, blank=False) short_name = models.CharField(max_length=2, blank=False, unique=False, default='Al') def __str__(self): return self.name class Meta: db_table = 'material' 我创建了这个模型.假设我添加了一个名为 的新字段 status = models.IntergerField(default=1) 之后,如果我运行命令 python manage.py makemigrations ,那么django将在表中添加新的字段状态. 让我在表中有3行,然后值如下: 1. Material1, M1, 1
8 2023-07-21
编程技术问答社区
如何以编程方式获取最后一次迁移的名称?
我想获取Django中最后一个应用迁移的名称.我知道django迁移存储在django_migrations表中,但是django.db.migrations.migration.Migration不是该表支持的models.Model.这意味着您不能做: migration_info = Migration.objects.all() 是否有任何内置方法可以从django_migrations中检索数据,还是应该创建自己的只读模型: class MigrationInfo(models.Model): class Meta: managed = False db_table = "django_migrations" 解决方案 这在Django 1.11/1.8/2.1&3.0.4上工作: from django.db.migrations.recorder import MigrationRecorder la
8 2023-07-21
编程技术问答社区
删除迁移文件-如何在不丢失数据的情况下进行迁移
我更改了模型类上的字段(该类别没有类别为 it,只有一个外键指向其中).不知何故,这塞满了我的迁移,它一直在说" django.db.migrations.graph.nodenotfounderror:"寻找不存在的迁移文件. 我在"迁移"文件夹中意外删除了几个文件. 我的数据库包含很多数据,我不想破坏它. 如果我: 我会丢失任何数据 删除首先引起问题的表(psql,\ d,drop table tableName) 删除我所有的迁移文件 从一开始运行迁移? ./manage.py makemigrations ./manage.py迁移 任何人都可以推荐另一种解决此问题的方法吗? 这是追溯: http://dpaste.com/0y1ydxs 解决方案 您不是使用git,以便您可以恢复迁移文件吗?如果不是,安装和使用它,请立即开始 我建议: 首先对数据库进行备份/转储,以防万一出现问题 删除所有迁移
8 2023-07-13
编程技术问答社区
在现有的django模型中添加一个新的唯一字段时的最佳做法
我有一个现有的模型,看起来有些类似... class Resource(models.Model): id = models.AutoField(primary_key=True) 我们已经使用了一段时间了,现在有〜1m的这些Resource对象(以及相关的foreferkey/elsey用法)在我们的数据库中. 我现在需要跟踪此模型上的另一个ID,我想执行的INS是唯一的. other_id = models.IntegerField(unique=True) 此信息当前存储在某些外部CSV中,我想(在此过程中的某个时候)将此信息加载到所有现有Resource实例中. 添加上述字段后,Django的makemigrations工作正常.但是,当我针对现有数据库应用上述迁移时,我会发现一个错误,表明我需要为所有现有Resource实例提供默认值.我敢肯定你们中的许多人都看过类似的东西. 解决此限制的最佳方法是什么?我想到的一些方法...
4 2023-07-13
编程技术问答社区