-
-
Notifications
You must be signed in to change notification settings - Fork 811
Closed
Labels
Description
First Check
- I added a very descriptive title to this issue.
- I used the GitHub search to find a similar issue and didn't find it.
- I searched the SQLModel documentation, with the integrated search.
- I already searched in Google "How to X in SQLModel" and didn't find any information.
- I already read and followed all the tutorial in the docs and didn't find an answer.
- I already checked if it is not related to SQLModel but to Pydantic.
- I already checked if it is not related to SQLModel but to SQLAlchemy.
Commit to Help
- I commit to help with one of those options 👆
Example Code
# Original SQLAlchamy Schema
import uuid
from sqlalchemy import Column, DateTime
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = "user"
id: uuid.UUID = Column(UUID(as_uuid=True), primary_key=True, unique=True, default=uuid.uuid4)
created_at = Column(DateTime, nullable=False)
updated_at = Column(DateTime, nullable=False)
# Updated to sqlmodel Schema
import uuid
from datetime import datetime
from sqlmodel import Field, SQLModel
class User(SQLModel, table=True):
id: uuid.UUID = Field(primary_key=True, default=uuid.uuid4)
created_at: datetime
updated_at: datetime
# Resulting Auto Migration
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('user', 'id',
existing_type=postgresql.UUID(),
nullable=True)
op.create_index(op.f('ix_user_created_at'), 'user', ['created_at'], unique=False)
op.create_index(op.f('ix_user_id'), 'user', ['id'], unique=False)
op.create_index(op.f('ix_user_updated_at'), 'user', ['updated_at'], unique=False)
# ### end Alembic commands ###Description
Using Postgres 13, alembic 1.6.5, and SQLAlchemy 1.4.22. All deps locked with poetry and run inside a docker container.
- Create a simple auto migration with Alembic based on SQLAlchemy declarative_base models
alembic revision --autogenerate - Upgrade DB with migration
- Change schema to use sqlmodel and run automigration again.
The resulting migration includes a bunch of unnecessary indexes.
Operating System
Linux
Operating System Details
Ubuntu in Docker on Linux host
FROM python@sha256:8f642902ba368481c9aca0a100f08daf93793c6fa14d3002253ea3cd210383a7
SQLModel Version
0.0.3
Python Version
3.9.6
Additional Context
No response
Reactions are currently unavailable