fastapi / sqlmodel

SQL databases in Python, designed for simplicity, compatibility, and robustness.
https://sqlmodel.tiangolo.com/
MIT License
14.19k stars 630 forks source link

Ensure SQLModel and SQLAlchemy Alembic migration parody with automated tests. #19

Open peterHoburg opened 3 years ago

peterHoburg commented 3 years ago

First Check

Commit to Help

Example Code

NA

Description

Add tests that implement the same model in SQLModel and SQLAlchemy, then runs an Alembic migration against an array of databases. This is one way to find disparities in the underlying models generated by SQLModel.

Using Alembic to test the generated models deltas is a good real-world test. Moving from existing SQLAlchemy models to SQLModel's and running migrations is going to be a very common use case.

Wanted Solution

Create a set of isolated docker containers that run sets of Alembic migrations and see if there are any deltas.

Example workflow:

This could be done on a set of different DBs that SQLAlchemy supports.

Wanted Code

NA

Alternatives

Directly comparing the generated SQLAlchemy and SQLModel model's could be a solution, but it lacks the real-world use case and added complexity of using Alembic.

Operating System

Linux

Operating System Details

Docker

SQLModel Version

0.0.4

Python Version

3.9

Additional Context

I would be happy to set up these types of tests as this is my exact real-world use case.

wyuenho commented 2 years ago

parity != parody