mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 00:27:41 +01:00
fix circular import + migration 15 downgrade
This commit is contained in:
@@ -27,8 +27,6 @@ SIZE_UNIT_TO_BYTES = {
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
|
||||
# Drop platform_slug foreign key on all tables
|
||||
with op.batch_alter_table("states", schema=None) as batch_op:
|
||||
batch_op.drop_constraint("states_ibfk_1", type_="foreignkey")
|
||||
@@ -101,14 +99,9 @@ def upgrade() -> None:
|
||||
with op.batch_alter_table("roms", schema=None) as batch_op:
|
||||
batch_op.drop_column("file_size")
|
||||
batch_op.drop_column("file_size_units")
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table("platforms", schema=None) as batch_op:
|
||||
batch_op.drop_column("id")
|
||||
|
||||
with op.batch_alter_table("roms", schema=None) as batch_op:
|
||||
batch_op.add_column(
|
||||
sa.Column("platform_slug", sa.String(length=50), nullable=False)
|
||||
@@ -117,35 +110,71 @@ def downgrade() -> None:
|
||||
batch_op.add_column(sa.Column("p_igdb_id", sa.String(length=10), nullable=True))
|
||||
batch_op.add_column(sa.Column("p_sgdb_id", sa.String(length=10), nullable=True))
|
||||
batch_op.drop_constraint("roms_platforms_FK", type_="foreignkey")
|
||||
batch_op.create_foreign_key(None, "platforms", ["platform_slug"], ["slug"])
|
||||
batch_op.drop_column("platform_id")
|
||||
batch_op.drop_column("file_size_bytes")
|
||||
batch_op.add_column(
|
||||
sa.Column("file_size_units", sa.String(length=10), nullable=False)
|
||||
)
|
||||
batch_op.add_column(sa.Column("file_size", sa.Float(), nullable=False))
|
||||
|
||||
op.execute(
|
||||
"update roms inner join platforms on roms.platform_id = platforms.id set roms.platform_slug = platforms.slug"
|
||||
)
|
||||
|
||||
with op.batch_alter_table("saves", schema=None) as batch_op:
|
||||
batch_op.add_column(
|
||||
sa.Column("platform_slug", sa.String(length=50), nullable=False)
|
||||
)
|
||||
batch_op.create_foreign_key(
|
||||
None, "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE"
|
||||
)
|
||||
|
||||
op.execute(
|
||||
"update saves inner join roms on saves.rom_id = roms.id set saves.platform_slug = roms.platform_slug"
|
||||
)
|
||||
|
||||
with op.batch_alter_table("screenshots", schema=None) as batch_op:
|
||||
batch_op.add_column(
|
||||
sa.Column("platform_slug", sa.String(length=50), nullable=True)
|
||||
)
|
||||
batch_op.create_foreign_key(
|
||||
None, "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE"
|
||||
)
|
||||
|
||||
op.execute(
|
||||
"update screenshots inner join roms on screenshots.rom_id = roms.id set screenshots.platform_slug = roms.platform_slug"
|
||||
)
|
||||
|
||||
with op.batch_alter_table("states", schema=None) as batch_op:
|
||||
batch_op.add_column(
|
||||
sa.Column("platform_slug", sa.String(length=50), nullable=False)
|
||||
)
|
||||
batch_op.create_foreign_key(
|
||||
None, "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE"
|
||||
|
||||
op.execute(
|
||||
"update states inner join roms on states.rom_id = roms.id set states.platform_slug = roms.platform_slug"
|
||||
)
|
||||
|
||||
with op.batch_alter_table("platforms", schema=None) as batch_op:
|
||||
batch_op.drop_column("id")
|
||||
batch_op.create_primary_key(constraint_name=None, columns=["slug"])
|
||||
batch_op.add_column(
|
||||
sa.Column("n_roms", sa.Integer(), autoincrement=False, nullable=True)
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
with op.batch_alter_table("saves", schema=None) as batch_op:
|
||||
batch_op.create_foreign_key(
|
||||
"saves_ibfk_1", "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE"
|
||||
)
|
||||
|
||||
with op.batch_alter_table("screenshots", schema=None) as batch_op:
|
||||
batch_op.create_foreign_key(
|
||||
"screenshots_ibfk_1",
|
||||
"platforms",
|
||||
["platform_slug"],
|
||||
["slug"],
|
||||
ondelete="CASCADE",
|
||||
)
|
||||
|
||||
with op.batch_alter_table("states", schema=None) as batch_op:
|
||||
batch_op.create_foreign_key(
|
||||
"states_ibfk_1", "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE"
|
||||
)
|
||||
|
||||
with op.batch_alter_table("roms", schema=None) as batch_op:
|
||||
batch_op.create_foreign_key(
|
||||
"fk_platform_roms", "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE"
|
||||
)
|
||||
batch_op.drop_column("platform_id")
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
ini
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from decorators.database import begin_session
|
||||
from handler.db_handler import DBHandler
|
||||
from models import Platform, Rom
|
||||
from models.platform import Platform
|
||||
from models.rom import Rom
|
||||
from sqlalchemy import delete, func, or_, select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from decorators.database import begin_session
|
||||
from handler.db_handler import DBHandler
|
||||
from models import Rom
|
||||
from models.rom import Rom
|
||||
from sqlalchemy import and_, delete, func, select, update
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from decorators.database import begin_session
|
||||
from handler.db_handler import DBHandler
|
||||
from models import Save
|
||||
from models.assets import Save
|
||||
from sqlalchemy import and_, delete, select, update
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from decorators.database import begin_session
|
||||
from handler.db_handler import DBHandler
|
||||
from models import Screenshot
|
||||
from models.assets import Screenshot
|
||||
from sqlalchemy import delete, select, update
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from decorators.database import begin_session
|
||||
from handler.db_handler import DBHandler
|
||||
from models import State
|
||||
from models.assets import State
|
||||
from sqlalchemy import and_, delete, select, update
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
from decorators.database import begin_session
|
||||
from handler.db_handler import DBHandler
|
||||
from models import Platform, Rom, Save, Screenshot, State
|
||||
from models.platform import Platform
|
||||
from models.rom import Rom
|
||||
from models.assets import Save, Screenshot, State
|
||||
from sqlalchemy import func, select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from decorators.database import begin_session
|
||||
from handler.db_handler import DBHandler
|
||||
from models import Role, User
|
||||
from models.user import Role, User
|
||||
from sqlalchemy import delete, select, update
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import os
|
||||
from typing import Any
|
||||
|
||||
import emoji
|
||||
|
||||
from config.config_manager import config_manager as cm
|
||||
from handler import fsasseth, igdbh, fsresourceh, fsromh, dbplatformh
|
||||
from logger.logger import log
|
||||
from models import Platform, Rom, Save, Screenshot, State
|
||||
from models.platform import Platform
|
||||
from models.rom import Rom
|
||||
from models.assets import Save, Screenshot, State
|
||||
|
||||
SWAPPED_PLATFORM_BINDINGS = dict(
|
||||
(v, k) for k, v in cm.config.PLATFORMS_BINDING.items()
|
||||
|
||||
@@ -4,7 +4,10 @@ from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
from config.config_manager import ConfigManager
|
||||
from models import Platform, Rom, User, Save, State, Screenshot
|
||||
from models.platform import Platform
|
||||
from models.rom import Rom
|
||||
from models.user import User
|
||||
from models.assets import Save, State, Screenshot
|
||||
from models.user import Role
|
||||
from handler import dbuserh, dbplatformh, dbromh, dbsaveh, dbstateh, authh, dbscreenshotsh
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
# from handler.db_handler import DBHandler
|
||||
from models import Platform, Rom, User, Save, State, Screenshot
|
||||
from models.user import Role
|
||||
from models.platform import Platform
|
||||
from models.rom import Rom
|
||||
from models.user import User, Role
|
||||
from models.assets import Save, State, Screenshot
|
||||
from handler import authh, dbplatformh, dbromh, dbuserh, dbsaveh, dbstateh, dbscreenshotsh
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
from models.platform import Platform # noqa[401]
|
||||
from models.rom import Rom # noqa[401]
|
||||
from models.user import User, Role # noqa[401]
|
||||
from models.assets import Save, State, Screenshot # noqa[401]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from models import Save, State, Screenshot
|
||||
from models.assets import Save, State, Screenshot
|
||||
|
||||
def test_save(save: Save):
|
||||
assert save.full_path == "test_platform_slug/saves/test_emulator/test_save.sav"
|
||||
|
||||
@@ -2,7 +2,7 @@ import pytest
|
||||
from base64 import b64encode
|
||||
from fastapi.exceptions import HTTPException
|
||||
|
||||
from models import User
|
||||
from models.user import User
|
||||
from handler import authh, oauthh, dbuserh
|
||||
from handler.auth_handler import WRITE_SCOPES
|
||||
from handler.auth_handler.hybrid_auth import HybridAuthBackend
|
||||
|
||||
@@ -2,7 +2,8 @@ import pytest
|
||||
|
||||
from handler.scan_handler import scan_platform, scan_rom
|
||||
from exceptions.fs_exceptions import RomsNotFoundException
|
||||
from models import Platform, Rom
|
||||
from models.platform import Platform
|
||||
from models.rom import Rom
|
||||
|
||||
|
||||
@pytest.mark.vcr()
|
||||
|
||||
@@ -2,7 +2,7 @@ import pytest
|
||||
from unittest.mock import patch
|
||||
|
||||
from handler import fsresourceh, fsplatformh, fsromh
|
||||
from models import Platform
|
||||
from models.platform import Platform
|
||||
from config import DEFAULT_PATH_COVER_L, DEFAULT_PATH_COVER_S
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user