def create_db(create_tables, drop_tables): db.connect_db() for model in all_models: if drop_tables and model.table_exists(): # TODO: submit PR to peewee to allow passing cascade option to drop_table. db.database.execute_sql('DROP TABLE %s CASCADE' % model._meta.db_table) #model.drop_table() if create_tables: model.create_table() db.close_db(None)
def create_db(create_tables, drop_tables): db.connect_db() for model in all_models: if drop_tables and model.table_exists(): # TODO: submit PR to peewee to allow passing cascade option to drop_table. db.database.execute_sql('DROP TABLE %s CASCADE' % model._meta.db_table) #model.drop_table() if create_tables and not model.table_exists(): model.create_table() db.close_db(None)
from playhouse.migrate import Migrator from redash import db from redash import models if __name__ == '__main__': db.connect_db() migrator = Migrator(db.database) with db.database.transaction(): migrator.add_column(models.Dashboard, models.Dashboard.dashboard_filters_enabled, 'dashboard_filters_enabled') db.close_db(None)
import peewee from playhouse.migrate import Migrator from redash import db from redash import models if __name__ == '__main__': db.connect_db() migrator = Migrator(db.database) if not models.Group.table_exists(): print "Creating groups table..." models.Group.create_table() with db.database.transaction(): models.Group.insert(name='admin', permissions=['admin'], tables=['*']).execute() models.Group.insert(name='api', permissions=['view_query'], tables=['*']).execute() models.Group.insert(name='default', permissions=models.Group.DEFAULT_PERMISSIONS, tables=['*']).execute() migrator.add_column(models.User, models.User.groups, 'groups') models.User.update(groups=['admin', 'default']).where(peewee.SQL("is_admin = true")).execute() models.User.update(groups=['admin', 'default']).where(peewee.SQL("'admin' = any(permissions)")).execute() models.User.update(groups=['default']).where(peewee.SQL("is_admin = false")).execute() migrator.drop_column(models.User, 'permissions') migrator.drop_column(models.User, 'is_admin') db.close_db(None)
def tearDown(self): db.close_db(None) redash.models.create_db(False, True)