我有一个oracle 12c
现有数据库。
我用inspectdb
创建了django模型。 db中的大多数表都没有主键,我假设如果未显式设置pk
,则Django会将id
列用作表的主键。
此外,我已经在所有模型上设置了managed=True
,因此,理想情况下Django应该能够创建id
列以供使用。
运行makemigrations
时,没有出现任何错误。但是当我之后运行迁移时,出现以下错误:-
return self.cursor.execute(query, self._param_generator(params))
django.db.utils.DatabaseError: ORA-00955:
name is already used by an existing object
任何提示我为什么会收到此错误?
答案 0 :(得分:0)
更新:-
因此,我发现问题出在最初的迁移本身。由于在我的情况下这些表已经存在,因此在首次尝试迁移时可能会将其当作重复的对象名称。我必须伪造初始迁移,以便它仅检查模型的表是否存在以及随后是否迁移。下面是相同的命令。它运行良好,并且我的初始迁移成功。
python manage.py makemigrations
python manage.py migrate --fake-initial