async def forwards(): manager = MigrationManager(migration_id=ID, app_name="music", description=DESCRIPTION) manager.add_column( table_class_name="Ticket", tablename="ticket", column_name="concert", column_class_name="ForeignKey", column_class=ForeignKey, params={ "references": Concert, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "null": True, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) return manager
def test_add_non_nullable_column(self): """ Test adding a non nullable column to a MigrationManager. Need to handle it gracefully if rows already exist. """ self.run_sync("INSERT INTO manager VALUES (default, 'Dave');") manager = MigrationManager() manager.add_column( table_class_name="Manager", tablename="manager", column_name="email", column_class_name="Varchar", params={ "length": 100, "default": "", "null": False, "primary": False, "key": False, "unique": True, "index": False, }, ) asyncio.run(manager.run())
def test_alter_column(self): """ Test altering columns. """ manager_1 = MigrationManager() manager_1.add_table(class_name="Manager", tablename="manager") manager_1.add_column( table_class_name="Manager", tablename="manager", column_name="name", column_class_name="Varchar", params={"length": 100}, ) manager_2 = MigrationManager() manager_2.alter_column( table_class_name="Manager", tablename="manager", column_name="name", params={"unique": True}, old_params={"unique": False}, ) schema_snapshot = SchemaSnapshot(managers=[manager_1, manager_2]) snapshot = schema_snapshot.get_snapshot() self.assertTrue(snapshot[0].columns[0]._meta.unique)
def test_add_column_with_index(self): """ Test adding a column with an index to a MigrationManager. """ manager = MigrationManager() manager.add_column( table_class_name="Manager", tablename="manager", column_name="email", column_class_name="Varchar", params={ "length": 100, "default": "", "null": True, "primary": False, "key": False, "unique": True, "index": True, }, ) index_name = Manager._get_index_name(["email"]) asyncio.run(manager.run()) self.assertTrue(index_name in Manager.indexes().run_sync()) # Reverse asyncio.run(manager.run_backwards()) self.assertTrue(index_name not in Manager.indexes().run_sync())
def test_add_column(self): """ Test adding a column to a MigrationManager. """ manager = MigrationManager() manager.add_column( table_class_name="Manager", tablename="manager", column_name="email", column_class_name="Varchar", params={ "length": 100, "default": "", "null": True, "primary": False, "key": False, "unique": True, "index": False, }, ) asyncio.run(manager.run()) self.run_sync( "INSERT INTO manager VALUES (default, 'Dave', '*****@*****.**');" ) response = self.run_sync("SELECT * FROM manager;") self.assertEqual( response, [{"id": 1, "name": "Dave", "email": "*****@*****.**"}] ) # Reverse asyncio.run(manager.run_backwards()) response = self.run_sync("SELECT * FROM manager;") self.assertEqual(response, [{"id": 1, "name": "Dave"}])
def test_add_foreign_key_self_column(self): """ Test adding a ForeignKey column to a MigrationManager, with a references argument of 'self'. """ manager = MigrationManager() manager.add_column( table_class_name="Manager", tablename="manager", column_name="advisor", column_class=ForeignKey, column_class_name="ForeignKey", params={ "references": "self", "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) asyncio.run(manager.run()) self.run_sync("INSERT INTO manager VALUES (default, 'Alice', null);") self.run_sync("INSERT INTO manager VALUES (default, 'Dave', 1);") response = self.run_sync("SELECT * FROM manager;") self.assertEqual( response, [ {"id": 1, "name": "Alice", "advisor": None}, {"id": 2, "name": "Dave", "advisor": 1}, ], ) # Reverse asyncio.run(manager.run_backwards()) response = self.run_sync("SELECT * FROM manager;") self.assertEqual( response, [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Dave"}], )
def test_add_column(self): """ Test adding columns. """ manager = MigrationManager() manager.add_table(class_name="Manager", tablename="manager") manager.add_column( table_class_name="Manager", tablename="manager", column_name="name", column_class_name="Varchar", params={"length": 100}, ) schema_snapshot = SchemaSnapshot(managers=[manager]) snapshot = schema_snapshot.get_snapshot() self.assertTrue(len(snapshot) == 1) self.assertTrue(len(snapshot[0].columns) == 1)
async def forwards(): manager = MigrationManager(migration_id=ID) manager.add_table("Band", tablename="band") manager.add_column( table_class_name="Band", tablename="band", column_name="name", column_class_name="Varchar", params={ "length": 150, "default": "", "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="questions") manager.add_column( table_class_name="Category", tablename="category", column_name="slug", column_class_name="Varchar", params={ "length": 200, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="music") manager.add_table("Poster", tablename="poster") manager.add_column( table_class_name="Poster", tablename="poster", column_name="content", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="token_auth") manager.add_table("TokenAuth", tablename="token_auth") manager.add_column( table_class_name="TokenAuth", tablename="token_auth", column_name="token", column_class_name="Varchar", params={ "length": 255, "default": generate_token, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="TokenAuth", tablename="token_auth", column_name="user", column_class_name="ForeignKey", params={ "references": BaseUser, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
def test_rename_column(self): """ Test renaming columns. """ manager_1 = MigrationManager() manager_1.add_table(class_name="Manager", tablename="manager") manager_1.add_column( table_class_name="Manager", tablename="manager", column_name="name", column_class_name="Varchar", params={"length": 100}, ) manager_2 = MigrationManager() manager_2.rename_column( table_class_name="Manager", tablename="manager", old_column_name="name", new_column_name="title", ) schema_snapshot = SchemaSnapshot(managers=[manager_1, manager_2]) snapshot = schema_snapshot.get_snapshot() self.assertTrue(snapshot[0].columns[0]._meta.name == "title") # Make sure double renames still work manager_3 = MigrationManager() manager_3.rename_column( table_class_name="Manager", tablename="manager", old_column_name="title", new_column_name="label", ) schema_snapshot = SchemaSnapshot( managers=[manager_1, manager_2, manager_3] ) snapshot = schema_snapshot.get_snapshot() self.assertTrue(snapshot[0].columns[0]._meta.name == "label")
def test_drop_column(self): """ Test dropping columns. """ manager_1 = MigrationManager() manager_1.add_table(class_name="Manager", tablename="manager") manager_1.add_column( table_class_name="Manager", tablename="manager", column_name="name", column_class_name="Varchar", params={"length": 100}, ) manager_2 = MigrationManager() manager_2.drop_column( table_class_name="Manager", tablename="manager", column_name="name" ) schema_snapshot = SchemaSnapshot(managers=[manager_1, manager_2]) snapshot = schema_snapshot.get_snapshot() self.assertEqual(len(snapshot[0].columns), 0)
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="user") manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="superuser", column_class_name="Boolean", column_class=Boolean, params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, }, ) manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="last_login", column_class_name="Timestamp", column_class=Timestamp, params={ "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="home") manager.add_table("Task", tablename="task") manager.add_column( table_class_name="Task", tablename="task", column_name="name", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Task", tablename="task", column_name="completed", column_class_name="Boolean", params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="forum") manager.add_table("Category", tablename="category") manager.add_column( table_class_name="Category", tablename="category", column_name="name", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Category", tablename="category", column_name="description", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="user") manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="first_name", column_class_name="Varchar", params={ "length": 255, "default": "", "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="last_name", column_class_name="Varchar", params={ "length": 255, "default": "", "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="questions") manager.add_table("Answer", tablename="answer") manager.add_column( table_class_name="Answer", tablename="answer", column_name="content", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Answer", tablename="answer", column_name="created_at", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Answer", tablename="answer", column_name="answer_like", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Answer", tablename="answer", column_name="is_accepted_answer", column_class_name="Boolean", params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Answer", tablename="answer", column_name="ans_user", column_class_name="ForeignKey", params={ "references": User, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Answer", tablename="answer", column_name="question", column_class_name="ForeignKey", params={ "references": Question, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="ads") manager.add_table("Ad", tablename="ad") manager.add_column( table_class_name="Ad", tablename="ad", column_name="title", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="slug", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="content", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="created", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="view", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="price", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="room", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="visitor", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="address", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="city", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Ad", tablename="ad", column_name="ad_user", column_class_name="ForeignKey", params={ "references": User, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="music") manager.add_table("Shirt", tablename="shirt") manager.add_table("RecordingStudio", tablename="recording_studio") manager.add_column( table_class_name="Shirt", tablename="shirt", column_name="size", column_class_name="Varchar", column_class=Varchar, params={ "length": 1, "default": "l", "null": False, "primary": False, "key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": Enum("Size", { "small": "s", "medium": "m", "large": "l" }), }, ) manager.add_column( table_class_name="RecordingStudio", tablename="recording_studio", column_name="facilities", column_class_name="JSON", column_class=JSON, params={ "default": "{}", "null": False, "primary": False, "key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="RecordingStudio", tablename="recording_studio", column_name="facilities_b", column_class_name="JSONB", column_class=JSONB, params={ "default": "{}", "null": False, "primary": False, "key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID) manager.add_table("SessionsBase", tablename="sessions") manager.add_column( table_class_name="SessionsBase", tablename="sessions", column_name="token", column_class_name="Varchar", params={ "length": 100, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="SessionsBase", tablename="sessions", column_name="user_id", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="SessionsBase", tablename="sessions", column_name="expiry_date", column_class_name="Timestamp", params={ "default": TimestampOffset(hours=1), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="SessionsBase", tablename="sessions", column_name="max_expiry_date", column_class_name="Timestamp", params={ "default": TimestampOffset(days=7), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="ads") manager.add_table("Rent", tablename="rent") manager.add_table("Image", tablename="image") manager.add_table("Review", tablename="review") manager.add_table("Notification", tablename="notification") manager.add_column( table_class_name="Rent", tablename="rent", column_name="start_date", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Rent", tablename="rent", column_name="end_date", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Rent", tablename="rent", column_name="client", column_class_name="ForeignKey", params={ "references": User, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Rent", tablename="rent", column_name="ad_rent", column_class_name="ForeignKey", params={ "references": Ad, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Image", tablename="image", column_name="path", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Image", tablename="image", column_name="ad_image", column_class_name="ForeignKey", params={ "references": Ad, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Review", tablename="review", column_name="content", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Review", tablename="review", column_name="created", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Review", tablename="review", column_name="review_grade", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Review", tablename="review", column_name="review_user", column_class_name="ForeignKey", params={ "references": User, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Review", tablename="review", column_name="ad", column_class_name="ForeignKey", params={ "references": Ad, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Notification", tablename="notification", column_name="message", column_class_name="Varchar", params={ "length": 150, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Notification", tablename="notification", column_name="created", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Notification", tablename="notification", column_name="is_read", column_class_name="Boolean", params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Notification", tablename="notification", column_name="sender", column_class_name="ForeignKey", params={ "references": User, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Notification", tablename="notification", column_name="recipient", column_class_name="ForeignKey", params={ "references": User, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID) manager.add_table("BaseUser", tablename="piccolo_user") manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="username", column_class_name="Varchar", params={ "length": 100, "default": "", "null": False, "primary": False, "key": False, "unique": True, "index": False, }, ) manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="password", column_class_name="Secret", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="email", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": True, "index": False, }, ) manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="active", column_class_name="Boolean", params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="BaseUser", tablename="piccolo_user", column_name="admin", column_class_name="Boolean", params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="forum") manager.add_table("Topic", tablename="topic") manager.add_column( table_class_name="Topic", tablename="topic", column_name="title", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Topic", tablename="topic", column_name="description", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Topic", tablename="topic", column_name="created", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Topic", tablename="topic", column_name="category", column_class_name="ForeignKey", params={ "references": Category, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Topic", tablename="topic", column_name="topic_user", column_class_name="ForeignKey", params={ "references": BaseUser, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="music") manager.add_table("Band", tablename="band") manager.add_table("Manager", tablename="manager") manager.add_column( table_class_name="Band", tablename="band", column_name="name", column_class_name="Varchar", params={ "length": 50, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Band", tablename="band", column_name="manager", column_class_name="ForeignKey", params={ "references": Manager, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Band", tablename="band", column_name="popularity", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Manager", tablename="manager", column_name="name", column_class_name="Varchar", params={ "length": 50, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="example_app") manager.add_table("Ticket", tablename="ticket") manager.add_table("Venue", tablename="venue") manager.add_table("Concert", tablename="concert") manager.add_column( table_class_name="Ticket", tablename="ticket", column_name="price", column_class_name="Numeric", params={ "default": Decimal("0"), "digits": (5, 2), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Concert", tablename="concert", column_name="band_1", column_class_name="ForeignKey", params={ "references": Band, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Concert", tablename="concert", column_name="band_2", column_class_name="ForeignKey", params={ "references": Band, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Concert", tablename="concert", column_name="venue", column_class_name="ForeignKey", params={ "references": Venue, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Venue", tablename="venue", column_name="name", column_class_name="Varchar", params={ "length": 100, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Venue", tablename="venue", column_name="capacity", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager( migration_id=ID, app_name="mega", description=DESCRIPTION ) manager.add_table("MegaTable", tablename="mega_table") manager.add_table("SmallTable", tablename="small_table") manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="bigint_col", column_class_name="BigInt", column_class=BigInt, params={ "default": 0, "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="boolean_col", column_class_name="Boolean", column_class=Boolean, params={ "default": False, "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="bytea_col", column_class_name="Bytea", column_class=Bytea, params={ "default": b"", "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="date_col", column_class_name="Date", column_class=Date, params={ "default": DateNow(), "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="foreignkey_col", column_class_name="ForeignKey", column_class=ForeignKey, params={ "references": SmallTable, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "null": True, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="integer_col", column_class_name="Integer", column_class=Integer, params={ "default": 0, "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="interval_col", column_class_name="Interval", column_class=Interval, params={ "default": IntervalCustom( weeks=0, days=0, hours=0, minutes=0, seconds=0, milliseconds=0, microseconds=0, ), "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="json_col", column_class_name="JSON", column_class=JSON, params={ "default": "{}", "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="jsonb_col", column_class_name="JSONB", column_class=JSONB, params={ "default": "{}", "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="numeric_col", column_class_name="Numeric", column_class=Numeric, params={ "default": Decimal("0"), "digits": (5, 2), "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="real_col", column_class_name="Real", column_class=Real, params={ "default": 0.0, "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="double_precision_col", column_class_name="DoublePrecision", column_class=DoublePrecision, params={ "default": 0.0, "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="smallint_col", column_class_name="SmallInt", column_class=SmallInt, params={ "default": 0, "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="text_col", column_class_name="Text", column_class=Text, params={ "default": "", "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="timestamp_col", column_class_name="Timestamp", column_class=Timestamp, params={ "default": TimestampNow(), "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="timestamptz_col", column_class_name="Timestamptz", column_class=Timestamptz, params={ "default": TimestamptzNow(), "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="uuid_col", column_class_name="UUID", column_class=UUID, params={ "default": UUID4(), "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="varchar_col", column_class_name="Varchar", column_class=Varchar, params={ "length": 255, "default": "", "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="unique_col", column_class_name="Varchar", column_class=Varchar, params={ "length": 255, "default": "", "null": False, "primary_key": False, "unique": True, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="null_col", column_class_name="Varchar", column_class=Varchar, params={ "length": 255, "default": "", "null": True, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="MegaTable", tablename="mega_table", column_name="not_null_col", column_class_name="Varchar", column_class=Varchar, params={ "length": 255, "default": "", "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) manager.add_column( table_class_name="SmallTable", tablename="small_table", column_name="varchar_col", column_class_name="Varchar", column_class=Varchar, params={ "length": 255, "default": "", "null": False, "primary_key": False, "unique": False, "index": False, "index_method": IndexMethod.btree, "choices": None, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="questions") manager.add_table("Question", tablename="question") manager.add_column( table_class_name="Question", tablename="question", column_name="title", column_class_name="Varchar", params={ "length": 200, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="slug", column_class_name="Varchar", params={ "length": 200, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="description", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="created_at", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="view", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="question_like", column_class_name="Integer", params={ "default": 0, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="accepted_answer", column_class_name="Boolean", params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="user", column_class_name="ForeignKey", params={ "references": User, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Question", tablename="question", column_name="category", column_class_name="ForeignKey", params={ "references": Category, "on_delete": OnDelete.cascade, "on_update": OnUpdate.cascade, "default": None, "null": True, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager
async def forwards(): manager = MigrationManager(migration_id=ID, app_name="blog") manager.add_table("Post", tablename="post") manager.add_column( table_class_name="Post", tablename="post", column_name="title", column_class_name="Varchar", params={ "length": 255, "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Post", tablename="post", column_name="content", column_class_name="Text", params={ "default": "", "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Post", tablename="post", column_name="published", column_class_name="Boolean", params={ "default": False, "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) manager.add_column( table_class_name="Post", tablename="post", column_name="created_on", column_class_name="Timestamp", params={ "default": TimestampNow(), "null": False, "primary": False, "key": False, "unique": False, "index": False, }, ) return manager