我正在使用 alembic 进行数据库迁移。并使用 sqlalchemy 使用 python 连接到数据库。
在 alembic 中,我们将表模式定义为第一个版本,这是创建模式的实际版本。
例如,我在我的第一个版本的 alembic 中给出了这样的模式。
op.create_table(
'my_table',
sa.Column('id', sa.String(10), primary_key=True),
sa.Column('mail', sa.String(20), unique=True)
)
现在,让我们进入 sqlalchemy 部分。在我的 python 项目中,我有一个数据库连接文件,我在其中创建了这样的用户表。
class CompanyInfo(Base):
__tablename__ = 'my_table'
id = Column(String(10), primary_key=False)
name = Column(String(20), unique=False)
在这里,Alembic 是连接数据库和创建表的第一件事。那么在我的python类中指定primary_key、唯一约束还是nullable=T/F值有什么关系呢?
我的问题只是关于数据类型和长度的约束。