feat: Tortoise ORM migrations
This commit is contained in:
1 parent
50cd677515
commit
25b5fbd22a
6 files changed
+184
-184
No files matched your search
@@ -0,0 +1,129 @@
|
||||
from tortoise import migrations
|
||||
from tortoise.migrations import operations as ops
|
||||
from orjson import loads
|
||||
from tortoise.fields.base import OnDelete
|
||||
from tortoise.fields.data import JSON_DUMPS
|
||||
from tortoise import fields
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
initial = True
|
||||
|
||||
operations = [
|
||||
ops.CreateModel(
|
||||
name='Model',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('name', fields.CharField(max_length=255)),
|
||||
('kind', fields.CharField(max_length=50)),
|
||||
('value', fields.JSONField(null=True, encoder=JSON_DUMPS, decoder=loads)),
|
||||
],
|
||||
options={'table': 'model', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='User',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('email', fields.CharField(max_length=255)),
|
||||
('username', fields.CharField(max_length=100)),
|
||||
('password', fields.CharField(max_length=255)),
|
||||
],
|
||||
options={'table': 'users', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='Chat',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('user', fields.ForeignKeyField('models.User', source_field='user_id', db_constraint=True, to_field='id', related_name='chats', on_delete=OnDelete.CASCADE)),
|
||||
('name', fields.CharField(max_length=255)),
|
||||
('description', fields.TextField(null=True, unique=False)),
|
||||
('picture', fields.TextField(null=True, unique=False)),
|
||||
('ordering', fields.IntField(null=True)),
|
||||
('last_message_preview', fields.TextField(null=True, unique=False)),
|
||||
('last_message_time', fields.BigIntField(null=True)),
|
||||
],
|
||||
options={'table': 'chats', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='Agent',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('user', fields.ForeignKeyField('models.User', source_field='user_id', db_constraint=True, to_field='id', related_name='agents', on_delete=OnDelete.CASCADE)),
|
||||
('agentname', fields.CharField(null=True, max_length=100)),
|
||||
('visibility', fields.IntField(default=0)),
|
||||
('permissions', fields.TextField(default='', unique=False)),
|
||||
('main_chat', fields.ForeignKeyField('models.Chat', source_field='main_chat_id', null=True, db_constraint=True, to_field='id', related_name='main_agents', on_delete=OnDelete.CASCADE)),
|
||||
('name', fields.CharField(max_length=255)),
|
||||
('description', fields.TextField(null=True, unique=False)),
|
||||
('picture', fields.TextField(null=True, unique=False)),
|
||||
('ordering', fields.IntField(null=True)),
|
||||
('kind', fields.CharField(max_length=50)),
|
||||
('data', fields.JSONField(default={}, encoder=JSON_DUMPS, decoder=loads)),
|
||||
],
|
||||
options={'table': 'agents', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='AgentResource',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('agent', fields.ForeignKeyField('models.Agent', source_field='agent_id', db_constraint=True, to_field='id', related_name='resources', on_delete=OnDelete.CASCADE)),
|
||||
('kind', fields.CharField(max_length=50)),
|
||||
('key', fields.CharField(max_length=100)),
|
||||
('value', fields.JSONField(null=True, encoder=JSON_DUMPS, decoder=loads)),
|
||||
],
|
||||
options={'table': 'agent_resources', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='Membership',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('agent', fields.ForeignKeyField('models.Agent', source_field='agent_id', db_constraint=True, to_field='id', related_name='memberships', on_delete=OnDelete.CASCADE)),
|
||||
('chat', fields.ForeignKeyField('models.Chat', source_field='chat_id', db_constraint=True, to_field='id', related_name='memberships', on_delete=OnDelete.CASCADE)),
|
||||
],
|
||||
options={'table': 'memberships', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='Thread',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('chat', fields.ForeignKeyField('models.Chat', source_field='chat_id', db_constraint=True, to_field='id', related_name='threads', on_delete=OnDelete.CASCADE)),
|
||||
('name', fields.CharField(null=True, max_length=255)),
|
||||
('description', fields.TextField(null=True, unique=False)),
|
||||
],
|
||||
options={'table': 'threads', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='Message',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('chat', fields.ForeignKeyField('models.Chat', source_field='chat_id', db_constraint=True, to_field='id', related_name='messages', on_delete=OnDelete.CASCADE)),
|
||||
('thread', fields.ForeignKeyField('models.Thread', source_field='thread_id', null=True, db_constraint=True, to_field='id', related_name='messages', on_delete=OnDelete.CASCADE)),
|
||||
('sender', fields.CharField(max_length=100)),
|
||||
('time', fields.BigIntField()),
|
||||
('last_edit', fields.BigIntField()),
|
||||
('kind', fields.CharField(max_length=50)),
|
||||
('subkind', fields.CharField(null=True, max_length=50)),
|
||||
('format', fields.CharField(null=True, max_length=20)),
|
||||
('content', fields.TextField(unique=False)),
|
||||
],
|
||||
options={'table': 'messages', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
ops.CreateModel(
|
||||
name='MessageDatum',
|
||||
fields=[
|
||||
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
||||
('message', fields.ForeignKeyField('models.Message', source_field='message_id', db_constraint=True, to_field='id', related_name='data', on_delete=OnDelete.CASCADE)),
|
||||
('user', fields.ForeignKeyField('models.User', source_field='user_id', db_constraint=True, to_field='id', related_name='message_data', on_delete=OnDelete.CASCADE)),
|
||||
('value', fields.JSONField(null=True, encoder=JSON_DUMPS, decoder=loads)),
|
||||
],
|
||||
options={'table': 'message_data', 'app': 'models', 'pk_attr': 'id'},
|
||||
bases=['Model'],
|
||||
),
|
||||
]
|
||||
Reference in new issue
Block a user