У меня есть простая проблема в SQLAlchemy. У меня есть одна модель в таблице, давайте назовем ее Model1 здесь.
Я хочу добавить строку в эту таблицу и получить автоинкрементный ключ, чтобы я мог создать другую модель и использовать этот ключ. Это не ошибочный дизайн базы данных (соотношение 1: 1 и т. Д.). Мне просто нужен этот ключ в другой таблице, потому что другая таблица переносится на удаленный хост, и мне нужны соответствующие ключи, чтобы серверы понимали друг друга. Между этими двумя таблицами больше не будет локальной ссылки, и из-за этого также невозможно создать отношения.
Рассмотрим следующий код:
object1 = model.Model1(param)
DBSession.add(object1)
# if I do this, the line below fails with an UnboundExecutionError.
# and if I dont do this, object1.id won't be set yet
#transaction.commit()
object2 = model.AnotherModel(object1.id) #id holds the primary, autoincremented key
Хотелось бы, чтобы мне даже не пришлось совершать "вручную".
По сути, я бы хотел добиться того, чтобы «Model1» постоянно росла, увеличивая первичный ключ Model.id. AnotherModel - это всего лишь небольшая часть Model1, которая еще не была обработана. Конечно, я мог бы добавить флаг «Model1», логическое поле в таблице, чтобы пометить уже обработанные элементы, но я надеялся, что в этом нет необходимости.
Как мне заставить работать мой код выше?
Greets
Tom