sqlalchemy: alembic bulk insert failed: объект 'str' не имеет атрибута '_autoincrement_column'

Моя модель выглядит

class Category(UserMixin, db.Model): __tablename__ = 'categories' uuid = Column('uuid', GUID(), default=uuid.uuid4, primary_key=True, unique=True) name = Column('name', String, nullable=False) parent = Column('parent', String, nullable=False) created_on = Column('created_on', sa.types.DateTime(timezone=True), default=datetime.utcnow()) __table_args__ = (UniqueConstraint('name', 'parent'),) def __init__(self, name, parent): self.name = name self.parent = parent def __repr__(self): return '<Category:%s:%s:%s>' % ( self.uuid, self.name, self.category_type) 

где GUID – это alembic --autogenerate типа I, alembic --autogenerate таблицу с использованием опции alembic --autogenerate

  op.create_table('categories', sa.Column('uuid', UUID(), nullable=False), sa.Column('name', sa.String(), nullable=False), sa.Column('parent', sa.String(), nullable=False), sa.Column('created_on', sa.DateTime(timezone=True), nullable=True), sa.PrimaryKeyConstraint('uuid'), sa.UniqueConstraint('name', 'parent'), sa.UniqueConstraint('uuid') ) 

и PostgreSQL в качестве

  Table "public.categories" Column | Type | Modifiers ------------+--------------------------+----------- uuid | uuid | not null name | character varying | not null parent | character varying | not null created_on | timestamp with time zone | Indexes: "categories_pkey" PRIMARY KEY, btree (uuid) "categories_name_parent_key" UNIQUE CONSTRAINT, btree (name, parent) 

Я пытаюсь запустить ревизию и обновить db как

 def upgrade(): op.bulk_insert('categories', [ {'name': 'first', 'parent': 'first_parent'}, {'name': 'second', 'parent': 'second_parent'} ] ) 

когда я запускаю alembic upgrade head , я вижу ошибку как

  File "/Users/me/.virtualenvs/envs/project/lib/python2.7/site-packages/alembic/environment.py", line 494, in run_migrations self.get_context().run_migrations(**kw) File "/Users/me/.virtualenvs/envs/project/lib/python2.7/site-packages/alembic/migration.py", line 211, in run_migrations change(**kw) File "alembic/versions/491d4f91e0bc_generate_categories_.py", line 21, in upgrade {'name': 'second', 'parent': 'second_parent'} File "<string>", line 7, in bulk_insert File "/Users/me/.virtualenvs/envs/project/lib/python2.7/site-packages/alembic/operations.py", line 710, in bulk_insert self.impl.bulk_insert(table, rows) File "/Users/me/.virtualenvs/envs/project/lib/python2.7/site-packages/alembic/ddl/impl.py", line 179, in bulk_insert table._autoincrement_column = None AttributeError: 'str' object has no attribute '_autoincrement_column' 

Что я здесь делаю неправильно?

One Solution collect form web for “sqlalchemy: alembic bulk insert failed: объект 'str' не имеет атрибута '_autoincrement_column'”

все, что мне нужно было сделать, это создать table перед bulk_insert, даже если у меня есть явная схема в отдельных models.py

 import sqlalchemy as sa from sqlalchemy.sql import table from alembic import op def upgrade(): categories = table('categories', sa.Column('uuid', UUID(), primary_key=True, unique=True, autoincrement=False), sa.Column('name', String), sa.Column('parent', String), sa.Column('created_on', sa.types.DateTime(timezone=True), default=datetime.utcnow()) ) op.bulk_insert(categories, [ {'name': 'first', 'parent': 'first_parent'}, {'name': 'second', 'parent': 'second_parent'} ] ) по import sqlalchemy as sa from sqlalchemy.sql import table from alembic import op def upgrade(): categories = table('categories', sa.Column('uuid', UUID(), primary_key=True, unique=True, autoincrement=False), sa.Column('name', String), sa.Column('parent', String), sa.Column('created_on', sa.types.DateTime(timezone=True), default=datetime.utcnow()) ) op.bulk_insert(categories, [ {'name': 'first', 'parent': 'first_parent'}, {'name': 'second', 'parent': 'second_parent'} ] ) 

а затем я смог запустить alembic upgrade head без каких-либо проблем, и данные были успешно сериализованы в базе данных.

  • Flask-SQLAlchemy Lower Case Index - пропуск функциональности, не поддерживаемый отражением SQLAlchemy
  • Изменение данных как часть обновления alembic
  • sqlalchemy: выполнение raw sql с привязками параметров
  • Как использовать предложение USING в Alembic / SQLAchemy?
  • Создание данных семян в миграциях с флягой или миграции
  • SQLAlchemy classic mapper "не удалось собрать какие-либо столбцы первичного ключа для отображаемой таблицы", несмотря на наличие первичного ключа?
  • Alembic SqlAlchemy Postgres «NameError: имя« String »не определено», пытаясь добавить поля Array (String)
  • Изменить первичный ключ в Alembic?
  •  
    Interesting Posts for Van-Lav

    pip install -r requirements.txt от марионетки?

    Python – использование Streamhandler в многопроцессорной среде

    Как правильно декодировать .wav с Python

    Python – чтение электронной таблицы

    Почему заказанный выбор в pyparsing не подходит для моего варианта использования?

    Почему Python имеет функцию формата, а также метод форматирования

    Функция-функция имеет многоточие для аргументов в функции help ()

    Двойное подчеркивание для метода Python * аргумент *

    Очистка HTML-кода Python

    Изменение значения в одном списке изменяет значения в другом списке с другим идентификатором памяти

    Построение набора заданных точек для формирования замкнутой кривой в matplotlib

    Стэнфордский NER с python NLTK терпит неудачу со строками, содержащими несколько «!!» s?

    Соглашение об именах для регулярных выражений Python?

    Как удалить строки Pandas DataFrame, значение которых в определенных столбцах составляет NaN

    Удалить элементы целочисленного рекурсивно

    Python - лучший язык программирования в мире.