У нас есть выделенная база данных Postgres для каждого клиента, поскольку мы не можем обрабатывать миграции базы данных для каждого из них, не сходя с ума, мы используем необработанные файлы SQL. У нас есть один исходный файл SQL, который создает таблицы и вставляет некоторые данные. Проблема возникает после того, как мы пытаемся вставить в таблицу, которая ранее была заполнена исходным сценарием SQL с использованием INSERT INTO
предложений.
Каким-то образом ребенок хочет создать новую запись с идентификатором = 1, таким образом поднимая IntegrityrError
(мы создали связку из файла SQL). Я не совсем уверен, как справиться с этим сценарием.
У меня есть базовая модель:
class BaseModel(peewee.Model):
active = peewee.BooleanField(default=True)
created_at = peewee.DateTimeField(default=datetime.datetime.now)
updated_at = peewee.DateTimeField(null=True)
class Meta:
database = database
Примерная модель, в которой используется BaseModel
:
class UserRole(BaseModel):
user = peewee.ForeignKeyField(User)
role = peewee.ForeignKeyField(Role)
class Meta:
indexes = (
(('user', 'role'), True),
)
Скажем, UserRole
имеет пять записей из исходного сценария SQL. Если попытаться создать новую запись, используя UserRole.create
из приложения flask, то я получаю ошибку целостности, сравнивая ID = 1.
Есть мысли?