перегонный куб: создать связь в файле ревизии

Мне нужно обновить мою базу данных, добавив одну таблицу и один столбец в существующую таблицу. Новый столбец и таблица должны иметь отношение «один ко многим».

вот файл ревизии перегонного куба:

def upgrade():
    op.create_table('categories',
        sa.Column('category_id', sa.Integer, primary_key=True),
        sa.Column('category_name', sa.String(30)),
        sa.Relationship('post', backref='cat', lazy='dynamic') )
    op.add_column('post', sa.Column('category', sa.Integer, sa.ForeignKey('categories.category_id')) )

Проблема в этой строке:

sa.Relationship('post', backref='cat', lazy='dynamic') )

Какой правильный код для определения отношения здесь? Благодарю вас


person Tasteam    schedule 23.01.2015    source источник
comment
Alembic — это инструмент переноса базы данных, и поэтому он не заботится о взаимосвязях. Однако он обрабатывает ForeignKeys. Поэтому вам не следует использовать его для переноса определений отношений, которые вы только добавляете в свои модели.   -  person van    schedule 23.01.2015


Ответы (1)


Отношения определяются только на стороне SQLAlchemy, а не на стороне SQL. Просто создайте нужные вам таблицы или столбцы, и взаимосвязь будет работать правильно. Поэтому его не должно быть в миграции.

person davidism    schedule 23.01.2015