#3 ガッチリしたマイグレはしなくていいかも

このコミットが含まれているのは:
2024-11-25 00:45:42 +09:00
コミット 196335b30e
+45 -26
ファイルの表示
@@ -1,15 +1,27 @@
from eloquent.migrations import Migration from __future__ import annotations
from eloquent import DatabaseManager, Schema
CONFIG: dict[str, DbConfig] = { 'mysql': { 'driver': 'mysql',
'host': 'localhost',
'database': 'nizika_nico',
'user': os.environ['MYSQL_USER'],
'password': os.environ['MYSQL_PASS'],
'prefix': '' } }
DB = DatabaseManager (CONFIG)
SCHEMA = Schema (DB)
class CreateQueries (Migration): def main (
"""
queries テーブルの作成
"""
def up (
self,
) -> None: ) -> None:
with self.schema.create ('queries') as table: create_queries ()
create_answers ()
create_users ()
def create_queries (
) -> None:
with SCHEMA.create ('queries') as table:
table.big_increments ('id') table.big_increments ('id')
table.big_integer ('user_id').nullable ().comment ('クエリ主') table.big_integer ('user_id').nullable ().comment ('クエリ主')
table.integer ('target_character').comment ('クエリ先キャラクタ') table.integer ('target_character').comment ('クエリ先キャラクタ')
@@ -19,21 +31,10 @@ class CreateQueries (Migration):
table.datetime ('sent_at', 6).comment ('送信日時') table.datetime ('sent_at', 6).comment ('送信日時')
table.boolean ('answered').default (False).comment ('回答済') table.boolean ('answered').default (False).comment ('回答済')
def down (
self, def create_answers (
) -> None: ) -> None:
self.schema.drop ('queries') with SCHEMA.create ('answers') as table:
class CreateAnswers (Migration):
"""
answers テーブルの作成
"""
def up (
self,
) -> None:
with self.schema.create ('answers') as table:
table.big_increments ('id') table.big_increments ('id')
table.big_integer ('query_id').nullable ().comment ('クエリ') table.big_integer ('query_id').nullable ().comment ('クエリ')
table.integer ('character').comment ('キャラクタ区分') table.integer ('character').comment ('キャラクタ区分')
@@ -42,7 +43,25 @@ class CreateAnswers (Migration):
table.datetime ('sent_at', 6).comment ('送信日時') table.datetime ('sent_at', 6).comment ('送信日時')
table.boolean ('answered').default (False).comment ('回答済') table.boolean ('answered').default (False).comment ('回答済')
def down (
self, def create_users (
) -> None: ) -> None:
self.schema.drop ('answers') with SCHEMA.create ('users') as table:
table.big_increments ('id')
table.integet ('platform').comment ('プラットフォーム区分')
table.string ('code').nullable ().comment ('ユーザ・コード(プラットフォーム依存)')
table.string ('name').comment ('ユーザ名(プラットフォーム内)')
table.binary ('icon').nullable ().comment ('アイコン')
class DbConfig (TypedDict):
driver: str
host: str
database: str
user: str
password: str
prefix: str
if __name__ == '__main__':
main ()