Python 迁移django firebird时出错

Python 迁移django firebird时出错,python,django,firebird,firebird2.5,Python,Django,Firebird,Firebird2.5,与django firebird一起运行migrate命令将导致以下错误: 这是一个与自动生成的用户表相关的问题,因此很难修复它 如果您能帮助我解决这个问题,我将不胜感激 Operations to perform: Apply all migrations: admin, auth, contenttypes, mdlservice, sessions Running migrations: Applying auth.0001_initial... OK Applying a

与django firebird一起运行migrate命令将导致以下错误:

这是一个与自动生成的用户表相关的问题,因此很难修复它

如果您能帮助我解决这个问题,我将不胜感激

  Operations to perform:
  Apply all migrations: admin, auth, contenttypes, mdlservice, sessions
Running migrations:
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... 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...Traceback (most recent call last):
  File "C:\Users\emptyspear\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\db\backends\utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "C:\Users\emptyspear\AppData\Local\Programs\Python\Python35-32\lib\site-packages\firebird\base.py", line 236, in execute
    return self.cursor.execute(q, params)
  File "C:\Users\emptyspear\AppData\Local\Programs\Python\Python35-32\lib\site-packages\fdb\fbcore.py", line 3627, in execute
    self._ps._execute(parameters)
  File "C:\Users\emptyspear\AppData\Local\Programs\Python\Python35-32\lib\site-packages\fdb\fbcore.py", line 3333, in _execute
    "Error while executing SQL statement:")
fdb.fbcore.DatabaseError: ('Error while executing SQL statement:\n- SQLCODE: -607\n- unsuccessful metadata update\n- MODIFY RDB$RELATION_FIELDS failed\n- action cancelled by trigger (1) to preserve data integrity\n- Cannot update index segment used by an Integrity Constraint', -607, 335544351)
开发环境如下

操作系统:windows10

python:3.5.4

django:1.10.8

fdb:2.0.0

firebird:2.5(32位)


django firebird:

“修改RDB$relationship_字段失败”-这意味着django使用了肮脏的攻击,在较新的firebird版本上,它应该用
ALTER TABLE
替换。我承认,随着FB从2.1到2.5到3.0的发展,这是一个移动的目标,所以可能是一件复杂的事情“无法更新完整性约束使用的索引段”“=,这可能是FB强化的另一种情况。或者Django在依赖项分析中失败。我建议您在github页面上打开bug报告,并邀请开发人员在此获取更多信息,如果他们需要的话it@Arioch'这不一定是真的,我还没有验证它,但我认为如果您更改外键约束中使用的字段,可能会出现此错误。在
alter table
语句的幕后,Firebird本身修改系统表,这也会产生此错误。@MarkrotVeel然后Django错误地报告了它正在做的事情。“MODIFY RDB$RELATION_FIELDS failed”不是FB 2.5本身可以生成的消息,是吗?@Arioch'是的
MODIFY
相当于替代(嵌入式)GDL查询语言中的
UPDATE
,它在实现中在内部大量使用。这是SQL作为标准查询语言出现之前的原始查询语言。请参阅示例错误建议升级进行的修改是不允许的,因为表之间存在依赖关系。我建议您在上创建一个问题。另一种方法可能是创建一个新的空表,并将数据从旧表复制到新数据库。