This is an automated email from the ASF dual-hosted git repository.
uranusjr pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 75b22940ac4 Tweak AssetAlias to match Asset for AIP-74 additions
(#42814)
75b22940ac4 is described below
commit 75b22940ac4d36c31380669da2aa32fe46d70d32
Author: Tzu-ping Chung <[email protected]>
AuthorDate: Wed Oct 16 21:11:13 2024 +0800
Tweak AssetAlias to match Asset for AIP-74 additions (#42814)
---
airflow/assets/__init__.py | 13 +-
...8_3_0_0_tweak_assetaliasmodel_to_match_asset.py | 76 ++
airflow/models/asset.py | 17 +-
airflow/utils/db.py | 2 +-
docs/apache-airflow/img/airflow_erd.sha256 | 2 +-
docs/apache-airflow/img/airflow_erd.svg | 821 +++++++++++----------
docs/apache-airflow/migrations-ref.rst | 4 +-
7 files changed, 518 insertions(+), 417 deletions(-)
diff --git a/airflow/assets/__init__.py b/airflow/assets/__init__.py
index 15805418472..4dbc35fb953 100644
--- a/airflow/assets/__init__.py
+++ b/airflow/assets/__init__.py
@@ -227,6 +227,11 @@ class AssetAlias(BaseAsset):
"""A represeation of asset alias which is used to create asset during the
runtime."""
name: str = attr.field(validator=_validate_non_empty_identifier)
+ group: str = attr.field(
+ kw_only=True,
+ default="",
+ validator=[attr.validators.max_len(1500), _validate_identifier],
+ )
def iter_assets(self) -> Iterator[tuple[str, Asset]]:
return iter(())
@@ -272,10 +277,10 @@ def _set_extra_default(extra: dict | None) -> dict:
class Asset(os.PathLike, BaseAsset):
"""A representation of data dependencies between workflows."""
- name: str = attr.field()
- uri: str = attr.field()
- group: str = attr.field()
- extra: dict[str, Any] = attr.field()
+ name: str
+ uri: str
+ group: str
+ extra: dict[str, Any]
__version__: ClassVar[int] = 1
diff --git
a/airflow/migrations/versions/0038_3_0_0_tweak_assetaliasmodel_to_match_asset.py
b/airflow/migrations/versions/0038_3_0_0_tweak_assetaliasmodel_to_match_asset.py
new file mode 100644
index 00000000000..f1b57974f05
--- /dev/null
+++
b/airflow/migrations/versions/0038_3_0_0_tweak_assetaliasmodel_to_match_asset.py
@@ -0,0 +1,76 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+"""
+Tweak AssetAliasModel to match AssetModel after AIP-76.
+
+This involves two changes:
+
+1. Add the 'group' column.
+2. Reduce the 'name' column to 1500 characters.
+
+The first is straightforward. The second is technically not necessary (the
alias
+model does not need an extra field for uniqueness), but it is probably better
+for the two 'name' fields to have matching behavior, to reduce potential user
+confusion.
+
+Hopefully nobody would notice or be affected by this anyway since 1500
+characters is plenty enough.
+
+Revision ID: fb2d4922cd79
+Revises: 5a5d66100783
+Create Date: 2024-10-08 01:46:05.556368
+"""
+
+from __future__ import annotations
+
+import sqlalchemy as sa
+from alembic import op
+
+# Revision identifiers, used by Alembic.
+revision = "fb2d4922cd79"
+down_revision = "5a5d66100783"
+branch_labels = None
+depends_on = None
+airflow_version = "3.0.0"
+
+_STRING_COLUMN_TYPE = sa.String(length=1500).with_variant(
+ sa.String(length=1500, collation="latin1_general_cs"),
+ dialect_name="mysql",
+)
+
+
+def upgrade():
+ """Tweak AssetAliasModel to match AssetModel."""
+ with op.batch_alter_table("dataset_alias", schema=None) as batch_op:
+ batch_op.alter_column("name", type_=_STRING_COLUMN_TYPE,
nullable=False)
+ batch_op.add_column(sa.Column("group", _STRING_COLUMN_TYPE,
default=str, nullable=False))
+
+
+def downgrade():
+ """Untweak AssetAliasModel to match AssetModel."""
+ with op.batch_alter_table("dataset_alias", schema=None) as batch_op:
+ batch_op.drop_column("group")
+ batch_op.alter_column(
+ "name",
+ type_=sa.String(length=3000).with_variant(
+ sa.String(length=3000, collation="latin1_general_cs"),
+ dialect_name="mysql",
+ ),
+ nullable=False,
+ )
diff --git a/airflow/models/asset.py b/airflow/models/asset.py
index b565c9a100e..79f9b738943 100644
--- a/airflow/models/asset.py
+++ b/airflow/models/asset.py
@@ -91,9 +91,9 @@ class AssetAliasModel(Base):
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(
- String(length=3000).with_variant(
+ String(length=1500).with_variant(
String(
- length=3000,
+ length=1500,
# latin1 allows for more indexed length in mysql
# and this field should only be ascii chars
collation="latin1_general_cs",
@@ -102,6 +102,19 @@ class AssetAliasModel(Base):
),
nullable=False,
)
+ group = Column(
+ String(length=1500).with_variant(
+ String(
+ length=1500,
+ # latin1 allows for more indexed length in mysql
+ # and this field should only be ascii chars
+ collation="latin1_general_cs",
+ ),
+ "mysql",
+ ),
+ default=str,
+ nullable=False,
+ )
__tablename__ = "dataset_alias"
__table_args__ = (
diff --git a/airflow/utils/db.py b/airflow/utils/db.py
index 26af566c7e2..2fba821da66 100644
--- a/airflow/utils/db.py
+++ b/airflow/utils/db.py
@@ -96,7 +96,7 @@ _REVISION_HEADS_MAP: dict[str, str] = {
"2.9.0": "1949afb29106",
"2.9.2": "686269002441",
"2.10.0": "22ed7efa9da2",
- "3.0.0": "5a5d66100783",
+ "3.0.0": "fb2d4922cd79",
}
diff --git a/docs/apache-airflow/img/airflow_erd.sha256
b/docs/apache-airflow/img/airflow_erd.sha256
index a751eca9165..ac9ab5b14d6 100644
--- a/docs/apache-airflow/img/airflow_erd.sha256
+++ b/docs/apache-airflow/img/airflow_erd.sha256
@@ -1 +1 @@
-0ed26236c783f7524416c1377638fe18ff3520bd355160db48656585ff58524e
\ No newline at end of file
+b39a456ac1bd3aa91198d036eaa3859f25a47151164974f6b4fe7f998d41f720
\ No newline at end of file
diff --git a/docs/apache-airflow/img/airflow_erd.svg
b/docs/apache-airflow/img/airflow_erd.svg
index 73452a069c0..833f2f73bbb 100644
--- a/docs/apache-airflow/img/airflow_erd.svg
+++ b/docs/apache-airflow/img/airflow_erd.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: %3 Pages: 1 -->
-<svg width="1651pt" height="5825pt"
- viewBox="0.00 0.00 1651.00 5825.00" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4
5821)">
+<svg width="1651pt" height="5835pt"
+ viewBox="0.00 0.00 1651.00 5835.00" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4
5831)">
<title>%3</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-5821 1647,-5821
1647,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-5831 1647,-5831
1647,4 -4,4"/>
<!-- log -->
<g id="node1" class="node">
<title>log</title>
@@ -433,18 +433,23 @@
<!-- dataset_alias -->
<g id="node13" class="node">
<title>dataset_alias</title>
-<polygon fill="none" stroke="black" points="466,-4831 466,-4859 727,-4859
727,-4831 466,-4831"/>
-<text text-anchor="start" x="537.5" y="-4842.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">dataset_alias</text>
-<polygon fill="none" stroke="black" points="466,-4806 466,-4831 727,-4831
727,-4806 466,-4806"/>
-<text text-anchor="start" x="471" y="-4815.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="484" y="-4815.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="489" y="-4815.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="566" y="-4815.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="466,-4781 466,-4806 727,-4806
727,-4781 466,-4781"/>
-<text text-anchor="start" x="471" y="-4790.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="511" y="-4790.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="516" y="-4790.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1500)]</text>
-<text text-anchor="start" x="646" y="-4790.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="465,-4860 465,-4888 727,-4888
727,-4860 465,-4860"/>
+<text text-anchor="start" x="537" y="-4871.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">dataset_alias</text>
+<polygon fill="none" stroke="black" points="465,-4835 465,-4860 727,-4860
727,-4835 465,-4835"/>
+<text text-anchor="start" x="470" y="-4844.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="483" y="-4844.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="488" y="-4844.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="565" y="-4844.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="465,-4810 465,-4835 727,-4835
727,-4810 465,-4810"/>
+<text text-anchor="start" x="470" y="-4819.8"
font-family="Helvetica,sans-Serif" font-size="14.00">group</text>
+<text text-anchor="start" x="511" y="-4819.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="516" y="-4819.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1500)]</text>
+<text text-anchor="start" x="646" y="-4819.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="465,-4785 465,-4810 727,-4810
727,-4785 465,-4785"/>
+<text text-anchor="start" x="470" y="-4794.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="510" y="-4794.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="515" y="-4794.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1500)]</text>
+<text text-anchor="start" x="645" y="-4794.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
<!-- dataset_alias_dataset -->
<g id="node14" class="node">
@@ -465,16 +470,16 @@
<!-- dataset_alias--dataset_alias_dataset -->
<g id="edge1" class="edge">
<title>dataset_alias--dataset_alias_dataset</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M734.75,-4855.94C760.76,-4868.86 786.03,-4885.39 806,-4906 864.65,-4966.52
816.01,-5025.02 879,-5081 894.76,-5095.01 914.05,-5105.26 934.11,-5112.9"/>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M735.11,-4861.41C760.94,-4872.23 786.05,-4886.79 806,-4906 866.71,-4964.45
816.01,-5025.02 879,-5081 894.76,-5095.01 914.05,-5105.26 934.11,-5112.9"/>
<text text-anchor="start" x="903.11" y="-5101.7" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="734.75" y="-4844.74" font-family="Times,serif"
font-size="14.00">1</text>
+<text text-anchor="start" x="735.11" y="-4850.21" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dataset_alias--dataset_alias_dataset -->
<g id="edge2" class="edge">
<title>dataset_alias--dataset_alias_dataset</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M712.73,-4863.05C746.13,-4877.88 780.41,-4897.6 806,-4924 864.65,-4984.52
816.01,-5043.02 879,-5099 894.76,-5113.01 914.05,-5123.26 934.11,-5130.62"/>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M735.11,-4879.02C760.94,-4890.23 786.05,-4904.79 806,-4924 866.71,-4982.45
816.01,-5043.02 879,-5099 894.76,-5113.01 914.05,-5123.26 934.11,-5130.62"/>
<text text-anchor="start" x="903.11" y="-5119.42" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="702.73" y="-4866.85" font-family="Times,serif"
font-size="14.00">1</text>
+<text text-anchor="start" x="735.11" y="-4867.82" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dataset_alias_dataset_event -->
<g id="node15" class="node">
@@ -495,16 +500,16 @@
<!-- dataset_alias--dataset_alias_dataset_event -->
<g id="edge3" class="edge">
<title>dataset_alias--dataset_alias_dataset_event</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M734.75,-4802.07C761.88,-4793.72 787.6,-4780.41 806,-4759 863.23,-4692.38
822.91,-4039.57 879,-3972 890.89,-3957.68 906.42,-3947.14 923.41,-3939.52"/>
-<text text-anchor="start" x="892.41" y="-3943.32" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="734.75" y="-4805.87" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M735.23,-4810.8C762.33,-4800.91 787.92,-4786.23 806,-4764 861.76,-4695.44
822.57,-4040.01 879,-3972 890.89,-3957.67 906.41,-3947.14 923.4,-3939.52"/>
+<text text-anchor="start" x="892.4" y="-3943.32" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="735.23" y="-4799.6" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dataset_alias--dataset_alias_dataset_event -->
<g id="edge4" class="edge">
<title>dataset_alias--dataset_alias_dataset_event</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M734.75,-4819.61C761.88,-4811.72 787.6,-4798.41 806,-4777 863.23,-4710.38
822.91,-4057.57 879,-3990 890.89,-3975.68 906.42,-3965.14 923.41,-3957.33"/>
-<text text-anchor="start" x="892.41" y="-3961.13" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="734.75" y="-4823.41" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M735.23,-4828.34C762.33,-4818.91 787.92,-4804.23 806,-4782 861.76,-4713.44
822.57,-4058.01 879,-3990 890.89,-3975.67 906.41,-3965.14 923.4,-3957.32"/>
+<text text-anchor="start" x="892.4" y="-3961.12" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="735.23" y="-4817.14" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dag_schedule_dataset_alias_reference -->
<g id="node16" class="node">
@@ -535,9 +540,9 @@
<!-- dataset_alias--dag_schedule_dataset_alias_reference -->
<g id="edge5" class="edge">
<title>dataset_alias--dag_schedule_dataset_alias_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M734.79,-4800.72C780,-4794.39 830.95,-4787.26 878.94,-4780.55"/>
-<text text-anchor="start" x="847.94" y="-4769.35" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="734.79" y="-4789.52" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M735.11,-4812.62C780.17,-4804.66 830.92,-4795.7 878.74,-4787.26"/>
+<text text-anchor="start" x="847.74" y="-4776.06" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="735.11" y="-4805.17" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dataset -->
<g id="node17" class="node">
@@ -691,9 +696,9 @@
<!-- dataset--task_outlet_dataset_reference -->
<g id="edge11" class="edge">
<title>dataset--task_outlet_dataset_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M737.21,-4941.59C762.51,-4921.05 786.87,-4897.6 806,-4872 861.14,-4798.2
817.14,-4746.26 879,-4678 889.2,-4666.74 901.12,-4656.73 913.9,-4647.86"/>
-<text text-anchor="start" x="882.9" y="-4636.66" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="737.21" y="-4930.39" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M737.07,-4962.71C762.68,-4945.44 787.2,-4924.87 806,-4901 870.52,-4819.07
810.67,-4756.78 879,-4678 889.07,-4666.39 900.99,-4656.13 913.83,-4647.09"/>
+<text text-anchor="start" x="882.83" y="-4635.89" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="737.07" y="-4951.51" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dataset_dag_run_queue -->
<g id="node21" class="node">
@@ -719,9 +724,9 @@
<!-- dataset--dataset_dag_run_queue -->
<g id="edge12" class="edge">
<title>dataset--dataset_dag_run_queue</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M737.21,-4946.83C763.53,-4925.46 788.29,-4900.36 806,-4872 895.69,-4728.34
768.2,-4626.09 879,-4498 885.59,-4490.38 893.14,-4483.67 901.34,-4477.76"/>
-<text text-anchor="start" x="870.34" y="-4466.56" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="737.21" y="-4950.63" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M737.02,-4966.45C763.43,-4948.7 788.28,-4926.98 806,-4901 857.28,-4825.81
819.93,-4567.24 879,-4498 885.54,-4490.34 893.05,-4483.59 901.22,-4477.65"/>
+<text text-anchor="start" x="870.22" y="-4466.45" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="737.02" y="-4966.5" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dataset_event -->
<g id="node22" class="node">
@@ -805,144 +810,144 @@
<!-- dag -->
<g id="node24" class="node">
<title>dag</title>
-<polygon fill="none" stroke="black" points="394,-4727 394,-4755 798,-4755
798,-4727 394,-4727"/>
-<text text-anchor="start" x="579" y="-4738.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">dag</text>
-<polygon fill="none" stroke="black" points="394,-4702 394,-4727 798,-4727
798,-4702 394,-4702"/>
-<text text-anchor="start" x="399" y="-4711.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">dag_id</text>
-<text text-anchor="start" x="445" y="-4711.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="450" y="-4711.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="571" y="-4711.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="394,-4677 394,-4702 798,-4702
798,-4677 394,-4677"/>
-<text text-anchor="start" x="399" y="-4686.8"
font-family="Helvetica,sans-Serif" font-size="14.00">dag_display_name</text>
-<text text-anchor="start" x="528" y="-4686.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="533" y="-4686.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
-<polygon fill="none" stroke="black" points="394,-4652 394,-4677 798,-4677
798,-4652 394,-4652"/>
-<text text-anchor="start" x="399" y="-4661.8"
font-family="Helvetica,sans-Serif" font-size="14.00">dataset_expression</text>
-<text text-anchor="start" x="533" y="-4661.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="538" y="-4661.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<polygon fill="none" stroke="black" points="394,-4627 394,-4652 798,-4652
798,-4627 394,-4627"/>
-<text text-anchor="start" x="399" y="-4636.8"
font-family="Helvetica,sans-Serif" font-size="14.00">default_view</text>
-<text text-anchor="start" x="487" y="-4636.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="492" y="-4636.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(25)]</text>
-<polygon fill="none" stroke="black" points="394,-4602 394,-4627 798,-4627
798,-4602 394,-4602"/>
-<text text-anchor="start" x="399" y="-4611.8"
font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
-<text text-anchor="start" x="477" y="-4611.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="482" y="-4611.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
-<polygon fill="none" stroke="black" points="394,-4577 394,-4602 798,-4602
798,-4577 394,-4577"/>
-<text text-anchor="start" x="399" y="-4586.8"
font-family="Helvetica,sans-Serif" font-size="14.00">fileloc</text>
-<text text-anchor="start" x="440" y="-4586.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="445" y="-4586.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
-<polygon fill="none" stroke="black" points="394,-4552 394,-4577 798,-4577
798,-4552 394,-4552"/>
-<text text-anchor="start" x="399" y="-4561.8"
font-family="Helvetica,sans-Serif" font-size="14.00">has_import_errors</text>
-<text text-anchor="start" x="524" y="-4561.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="529" y="-4561.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<polygon fill="none" stroke="black" points="394,-4527 394,-4552 798,-4552
798,-4527 394,-4527"/>
-<text text-anchor="start" x="399" y="-4536.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">has_task_concurrency_limits</text>
-<text text-anchor="start" x="596" y="-4536.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="601" y="-4536.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="685" y="-4536.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="394,-4502 394,-4527 798,-4527
798,-4502 394,-4502"/>
-<text text-anchor="start" x="399" y="-4511.8"
font-family="Helvetica,sans-Serif" font-size="14.00">is_active</text>
-<text text-anchor="start" x="459" y="-4511.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="464" y="-4511.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<polygon fill="none" stroke="black" points="394,-4477 394,-4502 798,-4502
798,-4477 394,-4477"/>
-<text text-anchor="start" x="399" y="-4486.8"
font-family="Helvetica,sans-Serif" font-size="14.00">is_paused</text>
-<text text-anchor="start" x="469" y="-4486.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="474" y="-4486.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<polygon fill="none" stroke="black" points="394,-4452 394,-4477 798,-4477
798,-4452 394,-4452"/>
-<text text-anchor="start" x="399" y="-4461.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_expired</text>
-<text text-anchor="start" x="483" y="-4461.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="488" y="-4461.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="394,-4427 394,-4452 798,-4452
798,-4427 394,-4427"/>
-<text text-anchor="start" x="399" y="-4436.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_parsed_time</text>
-<text text-anchor="start" x="517" y="-4436.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="522" y="-4436.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="394,-4402 394,-4427 798,-4427
798,-4402 394,-4402"/>
-<text text-anchor="start" x="399" y="-4411.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_pickled</text>
-<text text-anchor="start" x="481" y="-4411.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="486" y="-4411.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="394,-4377 394,-4402 798,-4402
798,-4377 394,-4377"/>
-<text text-anchor="start" x="399" y="-4386.8"
font-family="Helvetica,sans-Serif" font-size="14.00">max_active_runs</text>
-<text text-anchor="start" x="516" y="-4386.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="521" y="-4386.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="394,-4352 394,-4377 798,-4377
798,-4352 394,-4352"/>
-<text text-anchor="start" x="399" y="-4361.8"
font-family="Helvetica,sans-Serif" font-size="14.00">max_active_tasks</text>
-<text text-anchor="start" x="521" y="-4361.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="526" y="-4361.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="603" y="-4361.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="394,-4327 394,-4352 798,-4352
798,-4327 394,-4327"/>
-<text text-anchor="start" x="399" y="-4336.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">max_consecutive_failed_dag_runs</text>
-<text text-anchor="start" x="635" y="-4336.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="640" y="-4336.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="717" y="-4336.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="394,-4302 394,-4327 798,-4327
798,-4302 394,-4302"/>
-<text text-anchor="start" x="399" y="-4311.8"
font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun</text>
-<text text-anchor="start" x="487" y="-4311.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="492" y="-4311.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="394,-4277 394,-4302 798,-4302
798,-4277 394,-4277"/>
-<text text-anchor="start" x="399" y="-4286.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">next_dagrun_create_after</text>
-<text text-anchor="start" x="576" y="-4286.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="581" y="-4286.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="394,-4252 394,-4277 798,-4277
798,-4252 394,-4252"/>
-<text text-anchor="start" x="399" y="-4261.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">next_dagrun_data_interval_end</text>
-<text text-anchor="start" x="617" y="-4261.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="622" y="-4261.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="394,-4227 394,-4252 798,-4252
798,-4227 394,-4227"/>
-<text text-anchor="start" x="399" y="-4236.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">next_dagrun_data_interval_start</text>
-<text text-anchor="start" x="623" y="-4236.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="628" y="-4236.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="394,-4202 394,-4227 798,-4227
798,-4202 394,-4202"/>
-<text text-anchor="start" x="399" y="-4211.8"
font-family="Helvetica,sans-Serif" font-size="14.00">owners</text>
-<text text-anchor="start" x="450" y="-4211.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="455" y="-4211.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
-<polygon fill="none" stroke="black" points="394,-4177 394,-4202 798,-4202
798,-4177 394,-4177"/>
-<text text-anchor="start" x="399" y="-4186.8"
font-family="Helvetica,sans-Serif" font-size="14.00">pickle_id</text>
-<text text-anchor="start" x="460" y="-4186.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="465" y="-4186.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="394,-4152 394,-4177 798,-4177
798,-4152 394,-4152"/>
-<text text-anchor="start" x="399" y="-4161.8"
font-family="Helvetica,sans-Serif" font-size="14.00">processor_subdir</text>
-<text text-anchor="start" x="518" y="-4161.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="523" y="-4161.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
-<polygon fill="none" stroke="black" points="394,-4127 394,-4152 798,-4152
798,-4127 394,-4127"/>
-<text text-anchor="start" x="399" y="-4136.8"
font-family="Helvetica,sans-Serif" font-size="14.00">scheduler_lock</text>
-<text text-anchor="start" x="502" y="-4136.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="507" y="-4136.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<polygon fill="none" stroke="black" points="394,-4102 394,-4127 798,-4127
798,-4102 394,-4102"/>
-<text text-anchor="start" x="399" y="-4111.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">timetable_description</text>
-<text text-anchor="start" x="549" y="-4111.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="554" y="-4111.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="394,-4077 394,-4102 798,-4102
798,-4077 394,-4077"/>
-<text text-anchor="start" x="399" y="-4086.8"
font-family="Helvetica,sans-Serif" font-size="14.00">timetable_summary</text>
-<text text-anchor="start" x="538" y="-4086.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="543" y="-4086.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<polygon fill="none" stroke="black" points="394,-4732 394,-4760 798,-4760
798,-4732 394,-4732"/>
+<text text-anchor="start" x="579" y="-4743.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">dag</text>
+<polygon fill="none" stroke="black" points="394,-4707 394,-4732 798,-4732
798,-4707 394,-4707"/>
+<text text-anchor="start" x="399" y="-4716.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">dag_id</text>
+<text text-anchor="start" x="445" y="-4716.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="450" y="-4716.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="571" y="-4716.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="394,-4682 394,-4707 798,-4707
798,-4682 394,-4682"/>
+<text text-anchor="start" x="399" y="-4691.8"
font-family="Helvetica,sans-Serif" font-size="14.00">dag_display_name</text>
+<text text-anchor="start" x="528" y="-4691.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="533" y="-4691.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<polygon fill="none" stroke="black" points="394,-4657 394,-4682 798,-4682
798,-4657 394,-4657"/>
+<text text-anchor="start" x="399" y="-4666.8"
font-family="Helvetica,sans-Serif" font-size="14.00">dataset_expression</text>
+<text text-anchor="start" x="533" y="-4666.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="538" y="-4666.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<polygon fill="none" stroke="black" points="394,-4632 394,-4657 798,-4657
798,-4632 394,-4632"/>
+<text text-anchor="start" x="399" y="-4641.8"
font-family="Helvetica,sans-Serif" font-size="14.00">default_view</text>
+<text text-anchor="start" x="487" y="-4641.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="492" y="-4641.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(25)]</text>
+<polygon fill="none" stroke="black" points="394,-4607 394,-4632 798,-4632
798,-4607 394,-4607"/>
+<text text-anchor="start" x="399" y="-4616.8"
font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
+<text text-anchor="start" x="477" y="-4616.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="482" y="-4616.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<polygon fill="none" stroke="black" points="394,-4582 394,-4607 798,-4607
798,-4582 394,-4582"/>
+<text text-anchor="start" x="399" y="-4591.8"
font-family="Helvetica,sans-Serif" font-size="14.00">fileloc</text>
+<text text-anchor="start" x="440" y="-4591.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="445" y="-4591.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<polygon fill="none" stroke="black" points="394,-4557 394,-4582 798,-4582
798,-4557 394,-4557"/>
+<text text-anchor="start" x="399" y="-4566.8"
font-family="Helvetica,sans-Serif" font-size="14.00">has_import_errors</text>
+<text text-anchor="start" x="524" y="-4566.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="529" y="-4566.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<polygon fill="none" stroke="black" points="394,-4532 394,-4557 798,-4557
798,-4532 394,-4532"/>
+<text text-anchor="start" x="399" y="-4541.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">has_task_concurrency_limits</text>
+<text text-anchor="start" x="596" y="-4541.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="601" y="-4541.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="685" y="-4541.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="394,-4507 394,-4532 798,-4532
798,-4507 394,-4507"/>
+<text text-anchor="start" x="399" y="-4516.8"
font-family="Helvetica,sans-Serif" font-size="14.00">is_active</text>
+<text text-anchor="start" x="459" y="-4516.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="464" y="-4516.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<polygon fill="none" stroke="black" points="394,-4482 394,-4507 798,-4507
798,-4482 394,-4482"/>
+<text text-anchor="start" x="399" y="-4491.8"
font-family="Helvetica,sans-Serif" font-size="14.00">is_paused</text>
+<text text-anchor="start" x="469" y="-4491.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="474" y="-4491.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<polygon fill="none" stroke="black" points="394,-4457 394,-4482 798,-4482
798,-4457 394,-4457"/>
+<text text-anchor="start" x="399" y="-4466.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_expired</text>
+<text text-anchor="start" x="483" y="-4466.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="488" y="-4466.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="394,-4432 394,-4457 798,-4457
798,-4432 394,-4432"/>
+<text text-anchor="start" x="399" y="-4441.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_parsed_time</text>
+<text text-anchor="start" x="517" y="-4441.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="522" y="-4441.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="394,-4407 394,-4432 798,-4432
798,-4407 394,-4407"/>
+<text text-anchor="start" x="399" y="-4416.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_pickled</text>
+<text text-anchor="start" x="481" y="-4416.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="486" y="-4416.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="394,-4382 394,-4407 798,-4407
798,-4382 394,-4382"/>
+<text text-anchor="start" x="399" y="-4391.8"
font-family="Helvetica,sans-Serif" font-size="14.00">max_active_runs</text>
+<text text-anchor="start" x="516" y="-4391.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="521" y="-4391.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="394,-4357 394,-4382 798,-4382
798,-4357 394,-4357"/>
+<text text-anchor="start" x="399" y="-4366.8"
font-family="Helvetica,sans-Serif" font-size="14.00">max_active_tasks</text>
+<text text-anchor="start" x="521" y="-4366.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="526" y="-4366.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="603" y="-4366.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="394,-4332 394,-4357 798,-4357
798,-4332 394,-4332"/>
+<text text-anchor="start" x="399" y="-4341.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">max_consecutive_failed_dag_runs</text>
+<text text-anchor="start" x="635" y="-4341.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="640" y="-4341.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="717" y="-4341.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="394,-4307 394,-4332 798,-4332
798,-4307 394,-4307"/>
+<text text-anchor="start" x="399" y="-4316.8"
font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun</text>
+<text text-anchor="start" x="487" y="-4316.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="492" y="-4316.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="394,-4282 394,-4307 798,-4307
798,-4282 394,-4282"/>
+<text text-anchor="start" x="399" y="-4291.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">next_dagrun_create_after</text>
+<text text-anchor="start" x="576" y="-4291.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="581" y="-4291.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="394,-4257 394,-4282 798,-4282
798,-4257 394,-4257"/>
+<text text-anchor="start" x="399" y="-4266.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">next_dagrun_data_interval_end</text>
+<text text-anchor="start" x="617" y="-4266.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="622" y="-4266.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="394,-4232 394,-4257 798,-4257
798,-4232 394,-4232"/>
+<text text-anchor="start" x="399" y="-4241.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">next_dagrun_data_interval_start</text>
+<text text-anchor="start" x="623" y="-4241.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="628" y="-4241.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="394,-4207 394,-4232 798,-4232
798,-4207 394,-4207"/>
+<text text-anchor="start" x="399" y="-4216.8"
font-family="Helvetica,sans-Serif" font-size="14.00">owners</text>
+<text text-anchor="start" x="450" y="-4216.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="455" y="-4216.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<polygon fill="none" stroke="black" points="394,-4182 394,-4207 798,-4207
798,-4182 394,-4182"/>
+<text text-anchor="start" x="399" y="-4191.8"
font-family="Helvetica,sans-Serif" font-size="14.00">pickle_id</text>
+<text text-anchor="start" x="460" y="-4191.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="465" y="-4191.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="394,-4157 394,-4182 798,-4182
798,-4157 394,-4157"/>
+<text text-anchor="start" x="399" y="-4166.8"
font-family="Helvetica,sans-Serif" font-size="14.00">processor_subdir</text>
+<text text-anchor="start" x="518" y="-4166.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="523" y="-4166.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<polygon fill="none" stroke="black" points="394,-4132 394,-4157 798,-4157
798,-4132 394,-4132"/>
+<text text-anchor="start" x="399" y="-4141.8"
font-family="Helvetica,sans-Serif" font-size="14.00">scheduler_lock</text>
+<text text-anchor="start" x="502" y="-4141.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="507" y="-4141.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<polygon fill="none" stroke="black" points="394,-4107 394,-4132 798,-4132
798,-4107 394,-4107"/>
+<text text-anchor="start" x="399" y="-4116.8"
font-family="Helvetica,sans-Serif"
font-size="14.00">timetable_description</text>
+<text text-anchor="start" x="549" y="-4116.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="554" y="-4116.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="394,-4082 394,-4107 798,-4107
798,-4082 394,-4082"/>
+<text text-anchor="start" x="399" y="-4091.8"
font-family="Helvetica,sans-Serif" font-size="14.00">timetable_summary</text>
+<text text-anchor="start" x="538" y="-4091.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="543" y="-4091.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
</g>
<!-- dag--dag_schedule_dataset_alias_reference -->
<g id="edge16" class="edge">
<title>dag--dag_schedule_dataset_alias_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.21,-4623.66C829.88,-4642.84 854.37,-4661.03 879,-4677 884.2,-4680.37
889.58,-4683.66 895.07,-4686.85"/>
-<text text-anchor="start" x="864.07" y="-4675.65" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="806.21" y="-4612.46" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.09,-4624.26C829.84,-4643.21 854.37,-4661.2 879,-4677 884.22,-4680.35
889.61,-4683.61 895.11,-4686.79"/>
+<text text-anchor="start" x="864.11" y="-4675.59" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="806.09" y="-4613.06" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dag--dag_schedule_dataset_reference -->
<g id="edge17" class="edge">
<title>dag--dag_schedule_dataset_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M804.43,-4759.19C827.7,-4785.59 852.61,-4810.35 879,-4832 886.58,-4838.22
894.73,-4844 903.23,-4849.38"/>
-<text text-anchor="start" x="872.23" y="-4838.18" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="794.43" y="-4762.99" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.33,-4761.8C829.08,-4787.23 853.35,-4811.08 879,-4832 886.59,-4838.2
894.76,-4843.97 903.27,-4849.33"/>
+<text text-anchor="start" x="872.27" y="-4838.13" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="806.33" y="-4750.6" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dag--task_outlet_dataset_reference -->
<g id="edge18" class="edge">
<title>dag--task_outlet_dataset_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.15,-4493.45C842.51,-4506.91 879.63,-4520.66 913.91,-4533.35"/>
-<text text-anchor="start" x="882.91" y="-4522.15" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="806.15" y="-4482.25" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.15,-4496.19C842.51,-4509.27 879.63,-4522.61 913.91,-4534.94"/>
+<text text-anchor="start" x="882.91" y="-4523.74" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="806.15" y="-4484.99" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dag--dataset_dag_run_queue -->
<g id="edge19" class="edge">
<title>dag--dataset_dag_run_queue</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.15,-4424.1C838.06,-4425.34 870.55,-4426.6 901.19,-4427.79"/>
-<text text-anchor="start" x="870.19" y="-4416.59" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="806.15" y="-4412.9" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.15,-4426.85C838.06,-4427.75 870.55,-4428.66 901.19,-4429.51"/>
+<text text-anchor="start" x="870.19" y="-4418.31" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="806.15" y="-4415.65" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dag_tag -->
<g id="node25" class="node">
@@ -963,9 +968,9 @@
<!-- dag--dag_tag -->
<g id="edge20" class="edge">
<title>dag--dag_tag</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.15,-4371.42C846.6,-4362.8 888,-4353.98 925.37,-4346.01"/>
-<text text-anchor="start" x="894.37" y="-4334.81" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="806.15" y="-4360.22" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.15,-4374.17C846.6,-4365.11 888,-4355.85 925.37,-4347.48"/>
+<text text-anchor="start" x="894.37" y="-4336.28" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="806.15" y="-4362.97" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dag_owner_attributes -->
<g id="node26" class="node">
@@ -991,9 +996,9 @@
<!-- dag--dag_owner_attributes -->
<g id="edge21" class="edge">
<title>dag--dag_owner_attributes</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.25,-4299.53C830.53,-4287.35 855.13,-4275.57 879,-4265 893.76,-4258.46
909.4,-4252.09 925.08,-4246.06"/>
-<text text-anchor="start" x="894.08" y="-4234.86" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="806.25" y="-4288.33" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.04,-4300.46C830.35,-4287.91 855.03,-4275.81 879,-4265 893.87,-4258.29
909.66,-4251.79 925.48,-4245.67"/>
+<text text-anchor="start" x="894.48" y="-4234.47" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="806.04" y="-4289.26" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- dag_warning -->
<g id="node27" class="node">
@@ -1024,9 +1029,9 @@
<!-- dag--dag_warning -->
<g id="edge22" class="edge">
<title>dag--dag_warning</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.16,-4190.88C829.71,-4170.72 854.19,-4151.67 879,-4135 887.56,-4129.25
896.63,-4123.79 905.96,-4118.63"/>
-<text text-anchor="start" x="874.96" y="-4107.43" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="806.16" y="-4179.68" font-family="Times,serif"
font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M806.26,-4191.44C829.75,-4171.07 854.18,-4151.83 879,-4135 887.54,-4129.21
896.58,-4123.72 905.9,-4118.54"/>
+<text text-anchor="start" x="874.9" y="-4107.34" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="806.26" y="-4180.24" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- log_template -->
<g id="node28" class="node">
@@ -1467,14 +1472,14 @@
<g id="edge47" class="edge">
<title>task_instance--task_reschedule</title>
<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M1224.58,-3579.47C1245.64,-3623.55 1265.83,-3669.02 1283,-3713
1304.49,-3768.05 1288.41,-3790.44 1319,-3841 1322.68,-3847.08 1326.67,-3853.08
1330.91,-3858.98"/>
-<text text-anchor="start" x="1299.91" y="-3847.78" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="1330.91" y="-3847.78" font-family="Times,serif"
font-size="14.00">0..N</text>
<text text-anchor="start" x="1224.58" y="-3583.27" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- task_instance--task_reschedule -->
<g id="edge48" class="edge">
<title>task_instance--task_reschedule</title>
<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M1224.58,-3597.28C1245.64,-3641.55 1265.83,-3687.02 1283,-3731
1304.49,-3786.05 1288.41,-3808.44 1319,-3859 1320.09,-3860.81 1321.22,-3862.61
1322.36,-3864.4"/>
-<text text-anchor="start" x="1291.36" y="-3868.2" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="1291.36" y="-3853.2" font-family="Times,serif"
font-size="14.00">0..N</text>
<text text-anchor="start" x="1224.58" y="-3601.08" font-family="Times,serif"
font-size="14.00">1</text>
</g>
<!-- task_instance--task_reschedule -->
@@ -2107,318 +2112,318 @@
<!-- session -->
<g id="node42" class="node">
<title>session</title>
-<polygon fill="none" stroke="black" points="52.5,-3897 52.5,-3925 260.5,-3925
260.5,-3897 52.5,-3897"/>
-<text text-anchor="start" x="122.5" y="-3908.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">session</text>
-<polygon fill="none" stroke="black" points="52.5,-3872 52.5,-3897 260.5,-3897
260.5,-3872 52.5,-3872"/>
-<text text-anchor="start" x="57.5" y="-3881.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="70.5" y="-3881.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="75.5" y="-3881.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="152.5" y="-3881.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="52.5,-3847 52.5,-3872 260.5,-3872
260.5,-3847 52.5,-3847"/>
-<text text-anchor="start" x="57.5" y="-3856.8"
font-family="Helvetica,sans-Serif" font-size="14.00">data</text>
-<text text-anchor="start" x="88.5" y="-3856.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="93.5" y="-3856.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
-<polygon fill="none" stroke="black" points="52.5,-3822 52.5,-3847 260.5,-3847
260.5,-3822 52.5,-3822"/>
-<text text-anchor="start" x="57.5" y="-3831.8"
font-family="Helvetica,sans-Serif" font-size="14.00">expiry</text>
-<text text-anchor="start" x="101.5" y="-3831.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="106.5" y="-3831.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="52.5,-3797 52.5,-3822 260.5,-3822
260.5,-3797 52.5,-3797"/>
-<text text-anchor="start" x="57.5" y="-3806.8"
font-family="Helvetica,sans-Serif" font-size="14.00">session_id</text>
-<text text-anchor="start" x="129.5" y="-3806.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="134.5" y="-3806.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(255)]</text>
+<polygon fill="none" stroke="black" points="52.5,-3891 52.5,-3919 260.5,-3919
260.5,-3891 52.5,-3891"/>
+<text text-anchor="start" x="122.5" y="-3902.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">session</text>
+<polygon fill="none" stroke="black" points="52.5,-3866 52.5,-3891 260.5,-3891
260.5,-3866 52.5,-3866"/>
+<text text-anchor="start" x="57.5" y="-3875.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="70.5" y="-3875.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="75.5" y="-3875.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="152.5" y="-3875.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="52.5,-3841 52.5,-3866 260.5,-3866
260.5,-3841 52.5,-3841"/>
+<text text-anchor="start" x="57.5" y="-3850.8"
font-family="Helvetica,sans-Serif" font-size="14.00">data</text>
+<text text-anchor="start" x="88.5" y="-3850.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="93.5" y="-3850.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
+<polygon fill="none" stroke="black" points="52.5,-3816 52.5,-3841 260.5,-3841
260.5,-3816 52.5,-3816"/>
+<text text-anchor="start" x="57.5" y="-3825.8"
font-family="Helvetica,sans-Serif" font-size="14.00">expiry</text>
+<text text-anchor="start" x="101.5" y="-3825.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="106.5" y="-3825.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="52.5,-3791 52.5,-3816 260.5,-3816
260.5,-3791 52.5,-3791"/>
+<text text-anchor="start" x="57.5" y="-3800.8"
font-family="Helvetica,sans-Serif" font-size="14.00">session_id</text>
+<text text-anchor="start" x="129.5" y="-3800.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="134.5" y="-3800.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(255)]</text>
</g>
<!-- alembic_version -->
<g id="node43" class="node">
<title>alembic_version</title>
-<polygon fill="none" stroke="black" points="10.5,-4706 10.5,-4734 303.5,-4734
303.5,-4706 10.5,-4706"/>
-<text text-anchor="start" x="84.5" y="-4717.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">alembic_version</text>
-<polygon fill="none" stroke="black" points="10.5,-4681 10.5,-4706 303.5,-4706
303.5,-4681 10.5,-4681"/>
-<text text-anchor="start" x="15.5" y="-4690.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">version_num</text>
-<text text-anchor="start" x="105.5" y="-4690.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="110.5" y="-4690.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
-<text text-anchor="start" x="222.5" y="-4690.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="10.5,-4711 10.5,-4739 303.5,-4739
303.5,-4711 10.5,-4711"/>
+<text text-anchor="start" x="84.5" y="-4722.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">alembic_version</text>
+<polygon fill="none" stroke="black" points="10.5,-4686 10.5,-4711 303.5,-4711
303.5,-4686 10.5,-4686"/>
+<text text-anchor="start" x="15.5" y="-4695.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">version_num</text>
+<text text-anchor="start" x="105.5" y="-4695.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="110.5" y="-4695.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
+<text text-anchor="start" x="222.5" y="-4695.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
<!-- ab_user -->
<g id="node44" class="node">
<title>ab_user</title>
-<polygon fill="none" stroke="black" points="453,-5749 453,-5777 739,-5777
739,-5749 453,-5749"/>
-<text text-anchor="start" x="561" y="-5760.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_user</text>
-<polygon fill="none" stroke="black" points="453,-5724 453,-5749 739,-5749
739,-5724 453,-5724"/>
-<text text-anchor="start" x="458" y="-5733.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="471" y="-5733.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="476" y="-5733.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="553" y="-5733.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="453,-5699 453,-5724 739,-5724
739,-5699 453,-5699"/>
-<text text-anchor="start" x="458" y="-5708.8"
font-family="Helvetica,sans-Serif" font-size="14.00">active</text>
-<text text-anchor="start" x="500" y="-5708.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="505" y="-5708.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<polygon fill="none" stroke="black" points="453,-5674 453,-5699 739,-5699
739,-5674 453,-5674"/>
-<text text-anchor="start" x="458" y="-5683.8"
font-family="Helvetica,sans-Serif" font-size="14.00">changed_by_fk</text>
-<text text-anchor="start" x="563" y="-5683.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="568" y="-5683.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="453,-5649 453,-5674 739,-5674
739,-5649 453,-5649"/>
-<text text-anchor="start" x="458" y="-5658.8"
font-family="Helvetica,sans-Serif" font-size="14.00">changed_on</text>
-<text text-anchor="start" x="543" y="-5658.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="548" y="-5658.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="453,-5624 453,-5649 739,-5649
739,-5624 453,-5624"/>
-<text text-anchor="start" x="458" y="-5633.8"
font-family="Helvetica,sans-Serif" font-size="14.00">created_by_fk</text>
-<text text-anchor="start" x="555" y="-5633.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="560" y="-5633.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="453,-5599 453,-5624 739,-5624
739,-5599 453,-5599"/>
-<text text-anchor="start" x="458" y="-5608.8"
font-family="Helvetica,sans-Serif" font-size="14.00">created_on</text>
-<text text-anchor="start" x="534" y="-5608.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="539" y="-5608.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="453,-5574 453,-5599 739,-5599
739,-5574 453,-5574"/>
-<text text-anchor="start" x="458" y="-5583.8"
font-family="Helvetica,sans-Serif" font-size="14.00">email</text>
-<text text-anchor="start" x="496" y="-5583.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="501" y="-5583.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
-<text text-anchor="start" x="622" y="-5583.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="453,-5549 453,-5574 739,-5574
739,-5549 453,-5549"/>
-<text text-anchor="start" x="458" y="-5558.8"
font-family="Helvetica,sans-Serif" font-size="14.00">fail_login_count</text>
-<text text-anchor="start" x="566" y="-5558.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="571" y="-5558.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="453,-5524 453,-5549 739,-5549
739,-5524 453,-5524"/>
-<text text-anchor="start" x="458" y="-5533.8"
font-family="Helvetica,sans-Serif" font-size="14.00">first_name</text>
-<text text-anchor="start" x="532" y="-5533.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="537" y="-5533.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<text text-anchor="start" x="658" y="-5533.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="453,-5499 453,-5524 739,-5524
739,-5499 453,-5499"/>
-<text text-anchor="start" x="458" y="-5508.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_login</text>
-<text text-anchor="start" x="524" y="-5508.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="529" y="-5508.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="453,-5474 453,-5499 739,-5499
739,-5474 453,-5474"/>
-<text text-anchor="start" x="458" y="-5483.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_name</text>
-<text text-anchor="start" x="529" y="-5483.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="534" y="-5483.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<text text-anchor="start" x="655" y="-5483.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="453,-5449 453,-5474 739,-5474
739,-5449 453,-5449"/>
-<text text-anchor="start" x="458" y="-5458.8"
font-family="Helvetica,sans-Serif" font-size="14.00">login_count</text>
-<text text-anchor="start" x="538" y="-5458.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="543" y="-5458.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="453,-5424 453,-5449 739,-5449
739,-5424 453,-5424"/>
-<text text-anchor="start" x="458" y="-5433.8"
font-family="Helvetica,sans-Serif" font-size="14.00">password</text>
-<text text-anchor="start" x="525" y="-5433.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="530" y="-5433.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<polygon fill="none" stroke="black" points="453,-5399 453,-5424 739,-5424
739,-5399 453,-5399"/>
-<text text-anchor="start" x="458" y="-5408.8"
font-family="Helvetica,sans-Serif" font-size="14.00">username</text>
-<text text-anchor="start" x="528" y="-5408.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="533" y="-5408.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
-<text text-anchor="start" x="654" y="-5408.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="453,-5759 453,-5787 739,-5787
739,-5759 453,-5759"/>
+<text text-anchor="start" x="561" y="-5770.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_user</text>
+<polygon fill="none" stroke="black" points="453,-5734 453,-5759 739,-5759
739,-5734 453,-5734"/>
+<text text-anchor="start" x="458" y="-5743.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="471" y="-5743.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="476" y="-5743.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="553" y="-5743.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="453,-5709 453,-5734 739,-5734
739,-5709 453,-5709"/>
+<text text-anchor="start" x="458" y="-5718.8"
font-family="Helvetica,sans-Serif" font-size="14.00">active</text>
+<text text-anchor="start" x="500" y="-5718.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="505" y="-5718.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<polygon fill="none" stroke="black" points="453,-5684 453,-5709 739,-5709
739,-5684 453,-5684"/>
+<text text-anchor="start" x="458" y="-5693.8"
font-family="Helvetica,sans-Serif" font-size="14.00">changed_by_fk</text>
+<text text-anchor="start" x="563" y="-5693.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="568" y="-5693.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="453,-5659 453,-5684 739,-5684
739,-5659 453,-5659"/>
+<text text-anchor="start" x="458" y="-5668.8"
font-family="Helvetica,sans-Serif" font-size="14.00">changed_on</text>
+<text text-anchor="start" x="543" y="-5668.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="548" y="-5668.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="453,-5634 453,-5659 739,-5659
739,-5634 453,-5634"/>
+<text text-anchor="start" x="458" y="-5643.8"
font-family="Helvetica,sans-Serif" font-size="14.00">created_by_fk</text>
+<text text-anchor="start" x="555" y="-5643.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="560" y="-5643.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="453,-5609 453,-5634 739,-5634
739,-5609 453,-5609"/>
+<text text-anchor="start" x="458" y="-5618.8"
font-family="Helvetica,sans-Serif" font-size="14.00">created_on</text>
+<text text-anchor="start" x="534" y="-5618.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="539" y="-5618.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="453,-5584 453,-5609 739,-5609
739,-5584 453,-5584"/>
+<text text-anchor="start" x="458" y="-5593.8"
font-family="Helvetica,sans-Serif" font-size="14.00">email</text>
+<text text-anchor="start" x="496" y="-5593.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="501" y="-5593.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
+<text text-anchor="start" x="622" y="-5593.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="453,-5559 453,-5584 739,-5584
739,-5559 453,-5559"/>
+<text text-anchor="start" x="458" y="-5568.8"
font-family="Helvetica,sans-Serif" font-size="14.00">fail_login_count</text>
+<text text-anchor="start" x="566" y="-5568.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="571" y="-5568.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="453,-5534 453,-5559 739,-5559
739,-5534 453,-5534"/>
+<text text-anchor="start" x="458" y="-5543.8"
font-family="Helvetica,sans-Serif" font-size="14.00">first_name</text>
+<text text-anchor="start" x="532" y="-5543.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="537" y="-5543.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<text text-anchor="start" x="658" y="-5543.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="453,-5509 453,-5534 739,-5534
739,-5509 453,-5509"/>
+<text text-anchor="start" x="458" y="-5518.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_login</text>
+<text text-anchor="start" x="524" y="-5518.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="529" y="-5518.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="453,-5484 453,-5509 739,-5509
739,-5484 453,-5484"/>
+<text text-anchor="start" x="458" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_name</text>
+<text text-anchor="start" x="529" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="534" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<text text-anchor="start" x="655" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="453,-5459 453,-5484 739,-5484
739,-5459 453,-5459"/>
+<text text-anchor="start" x="458" y="-5468.8"
font-family="Helvetica,sans-Serif" font-size="14.00">login_count</text>
+<text text-anchor="start" x="538" y="-5468.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="543" y="-5468.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="453,-5434 453,-5459 739,-5459
739,-5434 453,-5434"/>
+<text text-anchor="start" x="458" y="-5443.8"
font-family="Helvetica,sans-Serif" font-size="14.00">password</text>
+<text text-anchor="start" x="525" y="-5443.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="530" y="-5443.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<polygon fill="none" stroke="black" points="453,-5409 453,-5434 739,-5434
739,-5409 453,-5409"/>
+<text text-anchor="start" x="458" y="-5418.8"
font-family="Helvetica,sans-Serif" font-size="14.00">username</text>
+<text text-anchor="start" x="528" y="-5418.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="533" y="-5418.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
+<text text-anchor="start" x="654" y="-5418.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
<!-- ab_user--ab_user -->
<g id="edge62" class="edge">
<title>ab_user--ab_user</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M580.23,-5781.02C584.02,-5792.27 589.27,-5799 596,-5799 602.73,-5799
607.98,-5792.27 611.77,-5781.02"/>
-<text text-anchor="start" x="611.77" y="-5784.82" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="580.23" y="-5784.82" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M580.23,-5791.02C584.02,-5802.27 589.27,-5809 596,-5809 602.73,-5809
607.98,-5802.27 611.77,-5791.02"/>
+<text text-anchor="start" x="611.77" y="-5794.82" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="580.23" y="-5794.82" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- ab_user--ab_user -->
<g id="edge63" class="edge">
<title>ab_user--ab_user</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M557.05,-5781.38C564.4,-5803.01 577.38,-5817 596,-5817 614.62,-5817
627.6,-5803.01 634.95,-5781.38"/>
-<text text-anchor="start" x="634.95" y="-5785.18" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="516.05" y="-5785.18" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M557.05,-5791.38C564.4,-5813.01 577.38,-5827 596,-5827 614.62,-5827
627.6,-5813.01 634.95,-5791.38"/>
+<text text-anchor="start" x="634.95" y="-5795.18" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="516.05" y="-5795.18" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- ab_user_role -->
<g id="node45" class="node">
<title>ab_user_role</title>
-<polygon fill="none" stroke="black" points="972.5,-5421 972.5,-5449
1153.5,-5449 1153.5,-5421 972.5,-5421"/>
-<text text-anchor="start" x="1006" y="-5432.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_user_role</text>
-<polygon fill="none" stroke="black" points="972.5,-5396 972.5,-5421
1153.5,-5421 1153.5,-5396 972.5,-5396"/>
-<text text-anchor="start" x="977.5" y="-5405.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="990.5" y="-5405.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="995.5" y="-5405.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1072.5" y="-5405.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="972.5,-5371 972.5,-5396
1153.5,-5396 1153.5,-5371 972.5,-5371"/>
-<text text-anchor="start" x="977.5" y="-5380.8"
font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
-<text text-anchor="start" x="1023.5" y="-5380.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="1028.5" y="-5380.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="972.5,-5346 972.5,-5371
1153.5,-5371 1153.5,-5346 972.5,-5346"/>
-<text text-anchor="start" x="977.5" y="-5355.8"
font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
-<text text-anchor="start" x="1028.5" y="-5355.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="1033.5" y="-5355.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="972.5,-5424 972.5,-5452
1153.5,-5452 1153.5,-5424 972.5,-5424"/>
+<text text-anchor="start" x="1006" y="-5435.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_user_role</text>
+<polygon fill="none" stroke="black" points="972.5,-5399 972.5,-5424
1153.5,-5424 1153.5,-5399 972.5,-5399"/>
+<text text-anchor="start" x="977.5" y="-5408.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="990.5" y="-5408.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="995.5" y="-5408.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1072.5" y="-5408.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="972.5,-5374 972.5,-5399
1153.5,-5399 1153.5,-5374 972.5,-5374"/>
+<text text-anchor="start" x="977.5" y="-5383.8"
font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
+<text text-anchor="start" x="1023.5" y="-5383.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1028.5" y="-5383.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="972.5,-5349 972.5,-5374
1153.5,-5374 1153.5,-5349 972.5,-5349"/>
+<text text-anchor="start" x="977.5" y="-5358.8"
font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
+<text text-anchor="start" x="1028.5" y="-5358.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1033.5" y="-5358.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
</g>
<!-- ab_user--ab_user_role -->
<g id="edge64" class="edge">
<title>ab_user--ab_user_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M747.17,-5526.57C818.2,-5497.52 901,-5463.65 963.78,-5437.97"/>
-<text text-anchor="start" x="932.78" y="-5426.77" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="747.17" y="-5515.37" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M747.17,-5534.31C818.2,-5504.18 901,-5469.07 963.78,-5442.45"/>
+<text text-anchor="start" x="932.78" y="-5431.25" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="747.17" y="-5523.11" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- ab_register_user -->
<g id="node46" class="node">
<title>ab_register_user</title>
-<polygon fill="none" stroke="black" points="13.5,-5534 13.5,-5562 299.5,-5562
299.5,-5534 13.5,-5534"/>
-<text text-anchor="start" x="81.5" y="-5545.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_register_user</text>
-<polygon fill="none" stroke="black" points="13.5,-5509 13.5,-5534 299.5,-5534
299.5,-5509 13.5,-5509"/>
-<text text-anchor="start" x="18.5" y="-5518.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="31.5" y="-5518.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="36.5" y="-5518.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="113.5" y="-5518.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="13.5,-5484 13.5,-5509 299.5,-5509
299.5,-5484 13.5,-5484"/>
-<text text-anchor="start" x="18.5" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00">email</text>
-<text text-anchor="start" x="56.5" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="61.5" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
-<text text-anchor="start" x="182.5" y="-5493.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="13.5,-5459 13.5,-5484 299.5,-5484
299.5,-5459 13.5,-5459"/>
-<text text-anchor="start" x="18.5" y="-5468.8"
font-family="Helvetica,sans-Serif" font-size="14.00">first_name</text>
-<text text-anchor="start" x="92.5" y="-5468.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="97.5" y="-5468.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<text text-anchor="start" x="218.5" y="-5468.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="13.5,-5434 13.5,-5459 299.5,-5459
299.5,-5434 13.5,-5434"/>
-<text text-anchor="start" x="18.5" y="-5443.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_name</text>
-<text text-anchor="start" x="89.5" y="-5443.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="94.5" y="-5443.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<text text-anchor="start" x="215.5" y="-5443.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="13.5,-5409 13.5,-5434 299.5,-5434
299.5,-5409 13.5,-5409"/>
-<text text-anchor="start" x="18.5" y="-5418.8"
font-family="Helvetica,sans-Serif" font-size="14.00">password</text>
-<text text-anchor="start" x="85.5" y="-5418.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="90.5" y="-5418.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<polygon fill="none" stroke="black" points="13.5,-5384 13.5,-5409 299.5,-5409
299.5,-5384 13.5,-5384"/>
-<text text-anchor="start" x="18.5" y="-5393.8"
font-family="Helvetica,sans-Serif" font-size="14.00">registration_date</text>
-<text text-anchor="start" x="136.5" y="-5393.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="141.5" y="-5393.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="13.5,-5359 13.5,-5384 299.5,-5384
299.5,-5359 13.5,-5359"/>
-<text text-anchor="start" x="18.5" y="-5368.8"
font-family="Helvetica,sans-Serif" font-size="14.00">registration_hash</text>
-<text text-anchor="start" x="139.5" y="-5368.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="144.5" y="-5368.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<polygon fill="none" stroke="black" points="13.5,-5334 13.5,-5359 299.5,-5359
299.5,-5334 13.5,-5334"/>
-<text text-anchor="start" x="18.5" y="-5343.8"
font-family="Helvetica,sans-Serif" font-size="14.00">username</text>
-<text text-anchor="start" x="88.5" y="-5343.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="93.5" y="-5343.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
-<text text-anchor="start" x="214.5" y="-5343.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="13.5,-5544 13.5,-5572 299.5,-5572
299.5,-5544 13.5,-5544"/>
+<text text-anchor="start" x="81.5" y="-5555.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_register_user</text>
+<polygon fill="none" stroke="black" points="13.5,-5519 13.5,-5544 299.5,-5544
299.5,-5519 13.5,-5519"/>
+<text text-anchor="start" x="18.5" y="-5528.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="31.5" y="-5528.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="36.5" y="-5528.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="113.5" y="-5528.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="13.5,-5494 13.5,-5519 299.5,-5519
299.5,-5494 13.5,-5494"/>
+<text text-anchor="start" x="18.5" y="-5503.8"
font-family="Helvetica,sans-Serif" font-size="14.00">email</text>
+<text text-anchor="start" x="56.5" y="-5503.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="61.5" y="-5503.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
+<text text-anchor="start" x="182.5" y="-5503.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="13.5,-5469 13.5,-5494 299.5,-5494
299.5,-5469 13.5,-5469"/>
+<text text-anchor="start" x="18.5" y="-5478.8"
font-family="Helvetica,sans-Serif" font-size="14.00">first_name</text>
+<text text-anchor="start" x="92.5" y="-5478.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="97.5" y="-5478.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<text text-anchor="start" x="218.5" y="-5478.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="13.5,-5444 13.5,-5469 299.5,-5469
299.5,-5444 13.5,-5444"/>
+<text text-anchor="start" x="18.5" y="-5453.8"
font-family="Helvetica,sans-Serif" font-size="14.00">last_name</text>
+<text text-anchor="start" x="89.5" y="-5453.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="94.5" y="-5453.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<text text-anchor="start" x="215.5" y="-5453.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="13.5,-5419 13.5,-5444 299.5,-5444
299.5,-5419 13.5,-5419"/>
+<text text-anchor="start" x="18.5" y="-5428.8"
font-family="Helvetica,sans-Serif" font-size="14.00">password</text>
+<text text-anchor="start" x="85.5" y="-5428.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="90.5" y="-5428.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<polygon fill="none" stroke="black" points="13.5,-5394 13.5,-5419 299.5,-5419
299.5,-5394 13.5,-5394"/>
+<text text-anchor="start" x="18.5" y="-5403.8"
font-family="Helvetica,sans-Serif" font-size="14.00">registration_date</text>
+<text text-anchor="start" x="136.5" y="-5403.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="141.5" y="-5403.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="13.5,-5369 13.5,-5394 299.5,-5394
299.5,-5369 13.5,-5369"/>
+<text text-anchor="start" x="18.5" y="-5378.8"
font-family="Helvetica,sans-Serif" font-size="14.00">registration_hash</text>
+<text text-anchor="start" x="139.5" y="-5378.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="144.5" y="-5378.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<polygon fill="none" stroke="black" points="13.5,-5344 13.5,-5369 299.5,-5369
299.5,-5344 13.5,-5344"/>
+<text text-anchor="start" x="18.5" y="-5353.8"
font-family="Helvetica,sans-Serif" font-size="14.00">username</text>
+<text text-anchor="start" x="88.5" y="-5353.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="93.5" y="-5353.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
+<text text-anchor="start" x="214.5" y="-5353.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
<!-- ab_permission -->
<g id="node47" class="node">
<title>ab_permission</title>
-<polygon fill="none" stroke="black" points="30.5,-5280 30.5,-5308 282.5,-5308
282.5,-5280 30.5,-5280"/>
-<text text-anchor="start" x="91.5" y="-5291.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_permission</text>
-<polygon fill="none" stroke="black" points="30.5,-5255 30.5,-5280 282.5,-5280
282.5,-5255 30.5,-5255"/>
-<text text-anchor="start" x="35.5" y="-5264.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="48.5" y="-5264.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="53.5" y="-5264.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="130.5" y="-5264.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="30.5,-5230 30.5,-5255 282.5,-5255
282.5,-5230 30.5,-5230"/>
-<text text-anchor="start" x="35.5" y="-5239.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="75.5" y="-5239.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="80.5" y="-5239.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
-<text text-anchor="start" x="201.5" y="-5239.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="30.5,-5290 30.5,-5318 282.5,-5318
282.5,-5290 30.5,-5290"/>
+<text text-anchor="start" x="91.5" y="-5301.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_permission</text>
+<polygon fill="none" stroke="black" points="30.5,-5265 30.5,-5290 282.5,-5290
282.5,-5265 30.5,-5265"/>
+<text text-anchor="start" x="35.5" y="-5274.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="48.5" y="-5274.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="53.5" y="-5274.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="130.5" y="-5274.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="30.5,-5240 30.5,-5265 282.5,-5265
282.5,-5240 30.5,-5240"/>
+<text text-anchor="start" x="35.5" y="-5249.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="75.5" y="-5249.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="80.5" y="-5249.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
+<text text-anchor="start" x="201.5" y="-5249.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
<!-- ab_permission_view -->
<g id="node48" class="node">
<title>ab_permission_view</title>
-<polygon fill="none" stroke="black" points="501,-5240 501,-5268 691,-5268
691,-5240 501,-5240"/>
-<text text-anchor="start" x="506.5" y="-5251.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_permission_view</text>
-<polygon fill="none" stroke="black" points="501,-5215 501,-5240 691,-5240
691,-5215 501,-5215"/>
-<text text-anchor="start" x="506" y="-5224.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="519" y="-5224.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="524" y="-5224.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="601" y="-5224.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="501,-5190 501,-5215 691,-5215
691,-5190 501,-5190"/>
-<text text-anchor="start" x="506" y="-5199.8"
font-family="Helvetica,sans-Serif" font-size="14.00">permission_id</text>
-<text text-anchor="start" x="602" y="-5199.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="607" y="-5199.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="501,-5165 501,-5190 691,-5190
691,-5165 501,-5165"/>
-<text text-anchor="start" x="506" y="-5174.8"
font-family="Helvetica,sans-Serif" font-size="14.00">view_menu_id</text>
-<text text-anchor="start" x="604" y="-5174.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="609" y="-5174.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="501,-5250 501,-5278 691,-5278
691,-5250 501,-5250"/>
+<text text-anchor="start" x="506.5" y="-5261.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_permission_view</text>
+<polygon fill="none" stroke="black" points="501,-5225 501,-5250 691,-5250
691,-5225 501,-5225"/>
+<text text-anchor="start" x="506" y="-5234.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="519" y="-5234.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="524" y="-5234.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="601" y="-5234.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="501,-5200 501,-5225 691,-5225
691,-5200 501,-5200"/>
+<text text-anchor="start" x="506" y="-5209.8"
font-family="Helvetica,sans-Serif" font-size="14.00">permission_id</text>
+<text text-anchor="start" x="602" y="-5209.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="607" y="-5209.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="501,-5175 501,-5200 691,-5200
691,-5175 501,-5175"/>
+<text text-anchor="start" x="506" y="-5184.8"
font-family="Helvetica,sans-Serif" font-size="14.00">view_menu_id</text>
+<text text-anchor="start" x="604" y="-5184.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="609" y="-5184.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
</g>
<!-- ab_permission--ab_permission_view -->
<g id="edge65" class="edge">
<title>ab_permission--ab_permission_view</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M290.55,-5253.19C355.53,-5245.46 432.5,-5236.31 492.8,-5229.15"/>
-<text text-anchor="start" x="461.8" y="-5217.95" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="290.55" y="-5241.99" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M290.55,-5263.19C355.53,-5255.46 432.5,-5246.31 492.8,-5239.15"/>
+<text text-anchor="start" x="461.8" y="-5227.95" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="290.55" y="-5251.99" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- ab_permission_view_role -->
<g id="node49" class="node">
<title>ab_permission_view_role</title>
-<polygon fill="none" stroke="black" points="946.5,-5289 946.5,-5317
1179.5,-5317 1179.5,-5289 946.5,-5289"/>
-<text text-anchor="start" x="951.5" y="-5300.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_permission_view_role</text>
-<polygon fill="none" stroke="black" points="946.5,-5264 946.5,-5289
1179.5,-5289 1179.5,-5264 946.5,-5264"/>
-<text text-anchor="start" x="951.5" y="-5273.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="964.5" y="-5273.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="969.5" y="-5273.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1046.5" y="-5273.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="946.5,-5239 946.5,-5264
1179.5,-5264 1179.5,-5239 946.5,-5239"/>
-<text text-anchor="start" x="951.5" y="-5248.8"
font-family="Helvetica,sans-Serif" font-size="14.00">permission_view_id</text>
-<text text-anchor="start" x="1085.5" y="-5248.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="1090.5" y="-5248.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="946.5,-5214 946.5,-5239
1179.5,-5239 1179.5,-5214 946.5,-5214"/>
-<text text-anchor="start" x="951.5" y="-5223.8"
font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
-<text text-anchor="start" x="997.5" y="-5223.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="1002.5" y="-5223.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="946.5,-5282 946.5,-5310
1179.5,-5310 1179.5,-5282 946.5,-5282"/>
+<text text-anchor="start" x="951.5" y="-5293.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_permission_view_role</text>
+<polygon fill="none" stroke="black" points="946.5,-5257 946.5,-5282
1179.5,-5282 1179.5,-5257 946.5,-5257"/>
+<text text-anchor="start" x="951.5" y="-5266.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="964.5" y="-5266.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="969.5" y="-5266.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1046.5" y="-5266.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="946.5,-5232 946.5,-5257
1179.5,-5257 1179.5,-5232 946.5,-5232"/>
+<text text-anchor="start" x="951.5" y="-5241.8"
font-family="Helvetica,sans-Serif" font-size="14.00">permission_view_id</text>
+<text text-anchor="start" x="1085.5" y="-5241.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1090.5" y="-5241.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="946.5,-5207 946.5,-5232
1179.5,-5232 1179.5,-5207 946.5,-5207"/>
+<text text-anchor="start" x="951.5" y="-5216.8"
font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
+<text text-anchor="start" x="997.5" y="-5216.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1002.5" y="-5216.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
</g>
<!-- ab_permission_view--ab_permission_view_role -->
<g id="edge66" class="edge">
<title>ab_permission_view--ab_permission_view_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M699.22,-5227.78C769.47,-5235.19 863.14,-5245.08 937.64,-5252.93"/>
-<text text-anchor="start" x="906.64" y="-5241.73" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="699.22" y="-5216.58" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M699.22,-5234.04C769.47,-5238.88 863.14,-5245.33 937.64,-5250.47"/>
+<text text-anchor="start" x="906.64" y="-5239.27" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="699.22" y="-5222.84" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- ab_view_menu -->
<g id="node50" class="node">
<title>ab_view_menu</title>
-<polygon fill="none" stroke="black" points="30.5,-5176 30.5,-5204 282.5,-5204
282.5,-5176 30.5,-5176"/>
-<text text-anchor="start" x="91.5" y="-5187.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_view_menu</text>
-<polygon fill="none" stroke="black" points="30.5,-5151 30.5,-5176 282.5,-5176
282.5,-5151 30.5,-5151"/>
-<text text-anchor="start" x="35.5" y="-5160.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="48.5" y="-5160.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="53.5" y="-5160.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="130.5" y="-5160.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="30.5,-5126 30.5,-5151 282.5,-5151
282.5,-5126 30.5,-5126"/>
-<text text-anchor="start" x="35.5" y="-5135.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="75.5" y="-5135.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="80.5" y="-5135.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="201.5" y="-5135.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="30.5,-5186 30.5,-5214 282.5,-5214
282.5,-5186 30.5,-5186"/>
+<text text-anchor="start" x="91.5" y="-5197.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_view_menu</text>
+<polygon fill="none" stroke="black" points="30.5,-5161 30.5,-5186 282.5,-5186
282.5,-5161 30.5,-5161"/>
+<text text-anchor="start" x="35.5" y="-5170.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="48.5" y="-5170.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="53.5" y="-5170.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="130.5" y="-5170.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="30.5,-5136 30.5,-5161 282.5,-5161
282.5,-5136 30.5,-5136"/>
+<text text-anchor="start" x="35.5" y="-5145.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="75.5" y="-5145.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="80.5" y="-5145.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="201.5" y="-5145.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
<!-- ab_view_menu--ab_permission_view -->
<g id="edge67" class="edge">
<title>ab_view_menu--ab_permission_view</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M290.55,-5180.81C355.53,-5188.54 432.5,-5197.69 492.8,-5204.85"/>
-<text text-anchor="start" x="461.8" y="-5193.65" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="290.55" y="-5169.61" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M290.55,-5190.81C355.53,-5198.54 432.5,-5207.69 492.8,-5214.85"/>
+<text text-anchor="start" x="461.8" y="-5203.65" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="290.55" y="-5179.61" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- ab_role -->
<g id="node51" class="node">
<title>ab_role</title>
-<polygon fill="none" stroke="black" points="475,-5345 475,-5373 718,-5373
718,-5345 475,-5345"/>
-<text text-anchor="start" x="563.5" y="-5356.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_role</text>
-<polygon fill="none" stroke="black" points="475,-5320 475,-5345 718,-5345
718,-5320 475,-5320"/>
-<text text-anchor="start" x="480" y="-5329.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
-<text text-anchor="start" x="493" y="-5329.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="498" y="-5329.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="575" y="-5329.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="475,-5295 475,-5320 718,-5320
718,-5295 475,-5295"/>
-<text text-anchor="start" x="480" y="-5304.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="520" y="-5304.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="525" y="-5304.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(64)]</text>
-<text text-anchor="start" x="637" y="-5304.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="475,-5355 475,-5383 718,-5383
718,-5355 475,-5355"/>
+<text text-anchor="start" x="563.5" y="-5366.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">ab_role</text>
+<polygon fill="none" stroke="black" points="475,-5330 475,-5355 718,-5355
718,-5330 475,-5330"/>
+<text text-anchor="start" x="480" y="-5339.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">id</text>
+<text text-anchor="start" x="493" y="-5339.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="498" y="-5339.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="575" y="-5339.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="475,-5305 475,-5330 718,-5330
718,-5305 475,-5305"/>
+<text text-anchor="start" x="480" y="-5314.8"
font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="520" y="-5314.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="525" y="-5314.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(64)]</text>
+<text text-anchor="start" x="637" y="-5314.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
<!-- ab_role--ab_user_role -->
<g id="edge68" class="edge">
<title>ab_role--ab_user_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M725.77,-5351.74C801.08,-5362.12 894.64,-5375.01 963.85,-5384.55"/>
-<text text-anchor="start" x="932.85" y="-5373.35" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="725.77" y="-5340.54" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M725.77,-5359.8C801.08,-5369.04 894.64,-5380.52 963.85,-5389.02"/>
+<text text-anchor="start" x="932.85" y="-5377.82" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="725.77" y="-5348.6" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- ab_role--ab_permission_view_role -->
<g id="edge69" class="edge">
<title>ab_role--ab_permission_view_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M725.77,-5315.15C791.95,-5305.46 872.23,-5293.71 937.69,-5284.13"/>
-<text text-anchor="start" x="906.69" y="-5272.93" font-family="Times,serif"
font-size="14.00">0..N</text>
-<text text-anchor="start" x="725.77" y="-5303.95" font-family="Times,serif"
font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2"
d="M725.77,-5320.44C791.95,-5308.32 872.23,-5293.64 937.69,-5281.66"/>
+<text text-anchor="start" x="906.69" y="-5270.46" font-family="Times,serif"
font-size="14.00">0..N</text>
+<text text-anchor="start" x="725.77" y="-5309.24" font-family="Times,serif"
font-size="14.00">{0,1}</text>
</g>
<!-- alembic_version_fab -->
<g id="node52" class="node">
<title>alembic_version_fab</title>
-<polygon fill="none" stroke="black" points="10.5,-5613 10.5,-5641 303.5,-5641
303.5,-5613 10.5,-5613"/>
-<text text-anchor="start" x="66.5" y="-5624.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">alembic_version_fab</text>
-<polygon fill="none" stroke="black" points="10.5,-5588 10.5,-5613 303.5,-5613
303.5,-5588 10.5,-5588"/>
-<text text-anchor="start" x="15.5" y="-5597.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">version_num</text>
-<text text-anchor="start" x="105.5" y="-5597.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
-<text text-anchor="start" x="110.5" y="-5597.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
-<text text-anchor="start" x="222.5" y="-5597.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="10.5,-5623 10.5,-5651 303.5,-5651
303.5,-5623 10.5,-5623"/>
+<text text-anchor="start" x="66.5" y="-5634.2"
font-family="Helvetica,sans-Serif" font-weight="bold"
font-size="16.00">alembic_version_fab</text>
+<polygon fill="none" stroke="black" points="10.5,-5598 10.5,-5623 303.5,-5623
303.5,-5598 10.5,-5598"/>
+<text text-anchor="start" x="15.5" y="-5607.8"
font-family="Helvetica,sans-Serif" text-decoration="underline"
font-size="14.00">version_num</text>
+<text text-anchor="start" x="105.5" y="-5607.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="110.5" y="-5607.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
+<text text-anchor="start" x="222.5" y="-5607.8"
font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
</g>
</g>
</svg>
diff --git a/docs/apache-airflow/migrations-ref.rst
b/docs/apache-airflow/migrations-ref.rst
index f917717d49e..c4db207712e 100644
--- a/docs/apache-airflow/migrations-ref.rst
+++ b/docs/apache-airflow/migrations-ref.rst
@@ -39,7 +39,9 @@ Here's the list of all the Database Migrations that are
executed via when you ru
+-------------------------+------------------+-------------------+--------------------------------------------------------------+
| Revision ID | Revises ID | Airflow Version | Description
|
+=========================+==================+===================+==============================================================+
-| ``5a5d66100783`` (head) | ``c3389cd7793f`` | ``3.0.0`` | Add
AssetActive to track orphaning instead of a flag. |
+| ``fb2d4922cd79`` (head) | ``5a5d66100783`` | ``3.0.0`` | Tweak
AssetAliasModel to match AssetModel after AIP-76. |
++-------------------------+------------------+-------------------+--------------------------------------------------------------+
+| ``5a5d66100783`` | ``c3389cd7793f`` | ``3.0.0`` | Add
AssetActive to track orphaning instead of a flag. |
+-------------------------+------------------+-------------------+--------------------------------------------------------------+
| ``c3389cd7793f`` | ``0d9e73a75ee4`` | ``3.0.0`` | Add
backfill to dag run model. |
+-------------------------+------------------+-------------------+--------------------------------------------------------------+