Renaming replace_table to replace_table_hack and documenting why it's a hack
We'd still prefer people use other solutions when possible! This commit sponsored by Michał Masłowski. Thank you!
This commit is contained in:
parent
454a2c16bd
commit
0c875e1e96
@ -288,8 +288,9 @@ def inspect_table(metadata, table_name):
|
||||
return Table(table_name, metadata, autoload=True,
|
||||
autoload_with=metadata.bind)
|
||||
|
||||
def replace_table(db, old_table,replacement_table):
|
||||
"""A function to fully replace a current table with a new one for migrati-
|
||||
def replace_table_hack(db, old_table, replacement_table):
|
||||
"""
|
||||
A function to fully replace a current table with a new one for migrati-
|
||||
-ons. This is necessary because some changes are made tricky in some situa-
|
||||
-tion, for example, dropping a boolean column in sqlite is impossible w/o
|
||||
this method
|
||||
@ -298,7 +299,12 @@ def replace_table(db, old_table,replacement_table):
|
||||
inspect_table
|
||||
|
||||
:param replacement_table A ref to the new table, gotten through
|
||||
inspect_table"""
|
||||
inspect_table
|
||||
|
||||
Users are encouraged to sqlalchemy-migrate replace table solutions, unless
|
||||
that is not possible... in which case, this solution works,
|
||||
at least for sqlite.
|
||||
"""
|
||||
surviving_columns = replacement_table.columns.keys()
|
||||
old_table_name = old_table.name
|
||||
for row in db.execute(select(
|
||||
|
@ -27,8 +27,8 @@ from migrate.changeset.constraint import UniqueConstraint
|
||||
|
||||
|
||||
from mediagoblin.db.extratypes import JSONEncoded, MutationDict
|
||||
from mediagoblin.db.migration_tools import (RegisterMigration, inspect_table,
|
||||
replace_table)
|
||||
from mediagoblin.db.migration_tools import (
|
||||
RegisterMigration, inspect_table, replace_table_hack)
|
||||
from mediagoblin.db.models import (MediaEntry, Collection, MediaComment, User,
|
||||
Privilege)
|
||||
|
||||
@ -695,7 +695,7 @@ def create_moderation_tables(db):
|
||||
User_vR1.__table__.create(db.bind)
|
||||
db.commit()
|
||||
new_user_table = inspect_table(metadata, 'rename__users')
|
||||
replace_table(db,user_table, new_user_table)
|
||||
replace_table_hack(db, user_table, new_user_table)
|
||||
else:
|
||||
# If the db is not run using SQLite, this process is much simpler ~~~~~
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user