Заполните строки новой таблицы данными из другой таблицы в SqlAlchemy - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть две таблицы, родительская и пользовательская. Родитель уже получает много данных, записанных в него, поэтому для очистки таблицы я хочу переместить некоторые столбцы в новую таблицу с именем user.

Однако я хочу создать связь между обеими таблицами, поэтому таблица USER ссылается на родительскую таблицу.

Это отношение один к одному, поэтому первичный ключ пользователя переходит в Parent как внешний ключ. Я полагаю, что для ссылки на него, кроме того, нужно ли мне использовать back_populate?

Я хочу заполнить данные в таблице User из родительской таблицы, а затем в конце концов прекратить запись в указанный столбец c в родительской таблице, который я переместил в новую пользовательскую таблицу. Столбец parent_data содержит данные о местоположении, которые я переместил в таблицу User.

Я делаю это в sqlalchemy, но у меня возникли некоторые проблемы, связанные с подходом к нему, заполнением нового пользователя. таблица на основе ссылки на родительскую таблицу. Я не хочу использовать грипп sh, но метод отношений именно потому, что данные будут сериализованы в новой таблице.

Любая помощь по этому вопросу будет очень признательна, заранее спасибо!

Родительская таблица

class Parent(AuditMixin):
    __tablename__ = 'Parent'
    parent_id = Column(Integer, PrimaryKey(parent_id), nullable=False)
    parent_data = Column(JSONB, server_default='{}', nullable=False)
    ip_address = Column(INET, nullable=True)
    ude_id = Column(Integer, ForeignKey(User.ude_id), nullable=False)

Таблица пользователей

class User(AuditMixin):
    __tablename__ = 'User'
    ude_id = Column(Integer, PrimaryKey(ude_id), nullable=False)
    loc_id = Column(Integer, ForeignKey(Parent.parent_id))
    ip_address = Column(inet)
...