op.bulk_insert () не вставляет никаких значений в поля, помеченные как «nullable = True», но корректно вставляет данные во все остальные поля.
Я знаю, что bulk_insert () работает иявляется допустимым, потому что он успешно вставляет в другие таблицы и событие в ту же таблицу, что и таблица с полями, допускающими обнуляемость, но он только вставляет данные в поля, которые не обнуляются.
Так что в этом случаеполя id, section_id, order, type, headline и is_required заполняются, но поля параметров и описания остаются пустыми.
Единственное отличие, которое я вижу между этими полями и остальными, заключается в том, чтоих определяют как обнуляемые.
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
question = op.create_table('question',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('application_form_id', sa.Integer(), nullable=False),
sa.Column('section_id', sa.Integer(), nullable=False),
sa.Column('type', sa.String(length=25), nullable=False),
sa.Column('description', sa.String(), nullable=True),
sa.Column('order', sa.Integer(), nullable=False),
sa.Column('headline', sa.String(), nullable=False),
sa.Column('options', sa.JSON(), nullable=True),
sa.Column('is_required', sa.Boolean(), nullable=False),
sa.ForeignKeyConstraint(['application_form_id'], ['application_form.id'], ),
sa.ForeignKeyConstraint(['section_id'], ['section.id'], ),
sa.PrimaryKeyConstraint('id'),
)
seed_question_data(question)
def seed_question_data(question):
op.bulk_insert(question,
[
{
'id': 5,
'application_form_id': 1,
'section_id': 2,
'type': 'long_text',
'headline': 'headline 1',
'description': 'Maximum 80 words.',
'order': 4,
'is_required': True
},
{
'id': 6,
'application_form_id': 1,
'section_id': 2,
'type': 'long_text',
'headline': 'headline 2',
'description': 'Maximum 150 words.',
'order': 5,
'is_required': False
},
{
'id': 7,
'application_form_id': 1,
'section_id': 2,
'type': 'file',
'headline': 'headline 3',
'description': 'description 3',
'order': 6,
'is_required': True
},
{
'id': 8,
'application_form_id': 1,
'section_id': 2,
'type': 'multi-choice',
'headline': 'headline 4',
'description': 'description 4' ,
'order': 7,
'is_required': True,
'options': [
{'selection': 'Yes'},
{'selection': 'No'}
]
}