Add inspect_table.
In our current scheme of migrations, we reflect the current sql schema into an SQLAlchemy schema. So let's have a tool function for this.
This commit is contained in:
parent
a050e776c6
commit
c4466cb4dc
@ -23,7 +23,7 @@ from sqlalchemy.exc import ProgrammingError
|
|||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from migrate.changeset.constraint import UniqueConstraint
|
from migrate.changeset.constraint import UniqueConstraint
|
||||||
|
|
||||||
from mediagoblin.db.sql.migration_tools import RegisterMigration
|
from mediagoblin.db.sql.migration_tools import RegisterMigration, inspect_table
|
||||||
from mediagoblin.db.models import MediaEntry, Collection, User
|
from mediagoblin.db.models import MediaEntry, Collection, User
|
||||||
|
|
||||||
MIGRATIONS = {}
|
MIGRATIONS = {}
|
||||||
@ -60,8 +60,7 @@ def add_wants_notification_column(db_conn):
|
|||||||
def add_transcoding_progress(db_conn):
|
def add_transcoding_progress(db_conn):
|
||||||
metadata = MetaData(bind=db_conn.bind)
|
metadata = MetaData(bind=db_conn.bind)
|
||||||
|
|
||||||
media_entry = Table('core__media_entries', metadata, autoload=True,
|
media_entry = inspect_table(metadata, 'core__media_entries')
|
||||||
autoload_with=db_conn.bind)
|
|
||||||
|
|
||||||
col = Column('transcoding_progress', SmallInteger)
|
col = Column('transcoding_progress', SmallInteger)
|
||||||
col.create(media_entry)
|
col.create(media_entry)
|
||||||
@ -115,8 +114,7 @@ def add_collection_tables(db_conn):
|
|||||||
def add_mediaentry_collected(db_conn):
|
def add_mediaentry_collected(db_conn):
|
||||||
metadata = MetaData(bind=db_conn.bind)
|
metadata = MetaData(bind=db_conn.bind)
|
||||||
|
|
||||||
media_entry = Table('core__media_entries', metadata, autoload=True,
|
media_entry = inspect_table(metadata, 'core__media_entries')
|
||||||
autoload_with=db_conn.bind)
|
|
||||||
|
|
||||||
col = Column('collected', Integer, default=0)
|
col = Column('collected', Integer, default=0)
|
||||||
col.create(media_entry)
|
col.create(media_entry)
|
||||||
@ -172,8 +170,7 @@ def fix_CollectionItem_v0_constraint(db_conn):
|
|||||||
|
|
||||||
metadata = MetaData(bind=db_conn.bind)
|
metadata = MetaData(bind=db_conn.bind)
|
||||||
|
|
||||||
CollectionItem_table = Table('core__collection_items',
|
CollectionItem_table = inspect_table(metadata, 'core__collection_items')
|
||||||
metadata, autoload=True, autoload_with=db_conn.bind)
|
|
||||||
|
|
||||||
constraint = UniqueConstraint('collection', 'media_entry',
|
constraint = UniqueConstraint('collection', 'media_entry',
|
||||||
name='core__collection_items_collection_media_entry_key',
|
name='core__collection_items_collection_media_entry_key',
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from mediagoblin.tools.common import simple_printer
|
from mediagoblin.tools.common import simple_printer
|
||||||
|
from sqlalchemy import Table
|
||||||
|
|
||||||
|
|
||||||
class MigrationManager(object):
|
class MigrationManager(object):
|
||||||
@ -261,3 +262,9 @@ def assure_migrations_table_setup(db):
|
|||||||
if not MigrationData.__table__.exists(db.bind):
|
if not MigrationData.__table__.exists(db.bind):
|
||||||
MigrationData.metadata.create_all(
|
MigrationData.metadata.create_all(
|
||||||
db.bind, tables=[MigrationData.__table__])
|
db.bind, tables=[MigrationData.__table__])
|
||||||
|
|
||||||
|
|
||||||
|
def inspect_table(metadata, table_name):
|
||||||
|
"""Simple helper to get a ref to an already existing table"""
|
||||||
|
return Table(table_name, metadata, autoload=True,
|
||||||
|
autoload_with=metadata.bind)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user