Coverage for mindsdb / migrations / versions / 2025-05-28_a44643042fe8_added_data_catalog_tables.py: 75%
20 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
1"""added data catalog tables
3Revision ID: a44643042fe8
4Revises: 9f150e4f9a05
5Create Date: 2025-05-28 17:20:57.300313
7"""
9from alembic import op
10import sqlalchemy as sa
11import mindsdb.interfaces.storage.db # noqa
12from mindsdb.interfaces.storage.db import Array
15# revision identifiers, used by Alembic.
16revision = "a44643042fe8"
17down_revision = "9f150e4f9a05"
18branch_labels = None
19depends_on = None
22def upgrade():
23 op.create_table(
24 "meta_tables",
25 sa.Column("id", sa.Integer(), primary_key=True),
26 sa.Column(
27 "integration_id",
28 sa.Integer(),
29 sa.ForeignKey("integration.id"),
30 nullable=False,
31 ),
32 sa.Column("name", sa.String(), nullable=False),
33 sa.Column("schema", sa.String(), nullable=True),
34 sa.Column("description", sa.String(), nullable=True),
35 sa.Column("type", sa.String(), nullable=True),
36 sa.Column("row_count", sa.Integer(), nullable=True),
37 )
39 op.create_table(
40 "meta_columns",
41 sa.Column("id", sa.Integer(), primary_key=True),
42 sa.Column("table_id", sa.Integer(), sa.ForeignKey("meta_tables.id"), nullable=False),
43 sa.Column("name", sa.String(), nullable=False),
44 sa.Column("data_type", sa.String(), nullable=False),
45 sa.Column("default_value", sa.String(), nullable=True),
46 sa.Column("description", sa.String(), nullable=True),
47 sa.Column("is_nullable", sa.Boolean(), nullable=True),
48 )
50 op.create_table(
51 "meta_column_statistics",
52 sa.Column(
53 "column_id",
54 sa.Integer(),
55 sa.ForeignKey("meta_columns.id"),
56 primary_key=True,
57 ),
58 sa.Column("most_common_values", Array(), nullable=True),
59 sa.Column("most_common_frequencies", Array(), nullable=True),
60 sa.Column("null_percentage", sa.Numeric(5, 2), nullable=True),
61 sa.Column("distinct_values_count", sa.Integer(), nullable=True),
62 sa.Column("minimum_value", sa.String(), nullable=True),
63 sa.Column("maximum_value", sa.String(), nullable=True),
64 )
66 op.create_table(
67 "meta_primary_keys",
68 sa.Column("table_id", sa.Integer(), sa.ForeignKey("meta_tables.id"), primary_key=True),
69 sa.Column(
70 "column_id",
71 sa.Integer(),
72 sa.ForeignKey("meta_columns.id"),
73 primary_key=True,
74 ),
75 sa.Column("ordinal_position", sa.Integer(), nullable=True),
76 sa.Column("constraint_name", sa.String(), nullable=True),
77 )
79 op.create_table(
80 "meta_foreign_keys",
81 sa.Column(
82 "parent_table_id",
83 sa.Integer(),
84 sa.ForeignKey("meta_tables.id"),
85 primary_key=True,
86 ),
87 sa.Column(
88 "parent_column_id",
89 sa.Integer(),
90 sa.ForeignKey("meta_columns.id"),
91 primary_key=True,
92 ),
93 sa.Column(
94 "child_table_id",
95 sa.Integer(),
96 sa.ForeignKey("meta_tables.id"),
97 primary_key=True,
98 ),
99 sa.Column(
100 "child_column_id",
101 sa.Integer(),
102 sa.ForeignKey("meta_columns.id"),
103 primary_key=True,
104 ),
105 sa.Column("constraint_name", sa.String(), nullable=True),
106 )
109def downgrade():
110 op.drop_table("meta_tables")
112 op.drop_table("meta_columns")
114 op.drop_table("meta_column_statistics")
116 op.drop_table("meta_primary_keys")
118 op.drop_table("meta_foreign_keys")