Ich versuche, Alembic eine erste Version meiner Datenbank zu automatisieren, was an diesem Punkt sehr einfach ist. Der Befehl funktioniert und generiert eine Migration mit allen Tabellen und Spalten, mit Ausnahme aller FremdKey -Beziehungen. < /P>
Mein Code sieht so aus: < /p>
from typing import List
from sqlalchemy import String
from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped, relationship
class Base(DeclarativeBase):
pass
class DBUnitCategory(Base):
__tablename__ = 'unit_category'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(20))
unit_id: Mapped[List["DBUnit"]] = relationship(back_populates="category_id")
class DBUnit(Base):
__tablename__ = 'unit'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(12))
category_id: Mapped[DBUnitCategory] = relationship(back_populates="unit_id")
< /code>
Und die generierte Upgrade -Migration sieht so aus: < /p>
def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('unit',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('name', sa.String(length=12), nullable=False),
sa.PrimaryKeyConstraint('id')
)
op.create_table('unit_category',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('name', sa.String(length=20), nullable=False),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('unit_category')
op.drop_table('unit')
< /code>
Ich glaube nicht, dass ich meine Definitionen durcheinander gebracht habe, es sieht für mich im Tutorial aus. Es gibt kein Problem damit im Github, daher verstehe ich nicht, was los ist. Hängt es mit der Tatsache zusammen, dass ich eine SQLite -Datenbank verwende?
Wie schließt man alembische autogenerierte fremde Schlüsselbeziehungen auf? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post