From f30f84e993fe68efed5af49f2b887edee25278ad Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Sun, 24 Apr 2022 21:57:07 +0200 Subject: [PATCH] =?UTF-8?q?Actualiza=20formato=20del=20c=C3=B3digo=20de=20?= =?UTF-8?q?las=20migraciones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...m20220316_000001_create_table_node_type.rs | 146 +++++++------- .../m20220316_000002_create_table_node.rs | 189 +++++++++--------- ...0220316_000003_create_table_node_access.rs | 109 +++++----- ...20316_000004_create_table_node_revision.rs | 147 +++++++------- .../m20220312_000001_create_table_role.rs | 67 +++---- ...312_000002_create_table_role_permission.rs | 100 +++++---- .../m20220312_000003_create_table_user.rs | 138 ++++++------- ...m20220312_000004_create_table_user_role.rs | 102 +++++----- 8 files changed, 486 insertions(+), 512 deletions(-) diff --git a/pagetop-node/src/migration/m20220316_000001_create_table_node_type.rs b/pagetop-node/src/migration/m20220316_000001_create_table_node_type.rs index 6ce9abe1..831a3396 100644 --- a/pagetop-node/src/migration/m20220316_000001_create_table_node_type.rs +++ b/pagetop-node/src/migration/m20220316_000001_create_table_node_type.rs @@ -1,90 +1,90 @@ use pagetop::prelude::*; -/// Stores information about all defined {node} types. #[derive(Iden)] enum NodeType { - Table, // Nombre de la tabla: node_type (Tipo de nodo). - Type, // The machine-readable name of this type - Name, // The human-readable name of this type - Description, // Descripción breve del tipo. - Help, // Help information shown to the user when creating a {node} of this type - HasTitle, // Boolean indicating whether this type uses the {node}.title field - TitleLabel, // The label displayed for the title field on the edit form - Custom, // A boolean indicating whether this type is defined by a module (FALSE) or by a user via Add content type (TRUE) - Locked, // A boolean indicating whether the administrator can change the machine name of this type - Disabled, // A boolean indicating whether the node type is disabled - OrigType, // The original machine-readable name of this node type. This may be different from the current type name if the locked field is 0 + Table, // Stores information about all defined Node types. + + Type, // The machine-readable name of this type. + Name, // The human-readable name of this type. + Description, // Descripción breve del tipo. + Help, // Help information shown to the user when creating a Node of this type. + HasTitle, // Boolean indicating whether this type uses the Node.Title field. + TitleLabel, // The label displayed for the title field on the edit form. + Custom, // A boolean indicating whether this type is defined by a module (FALSE) or + // by a user via Add content type (TRUE). + Locked, // A boolean indicating whether the administrator can change the machine + // name of this type. + Disabled, // A boolean indicating whether the node type is disabled. + OrigType, // The original machine-readable name of this node type, this may be + // different from the current type name if the locked field is 0. } pub struct Migration; -impl MigrationName for Migration { - fn name(&self) -> &str { - "m20220316_000001_create_table_node_type" - } -} - #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - Table::create() - .table(NodeType::Table) - .if_not_exists() - .col(ColumnDef::new(NodeType::Type) - .integer() - .not_null() - .auto_increment() - .primary_key(), - ) - .col(ColumnDef::new(NodeType::Name) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::Description) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::Help) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::HasTitle) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::TitleLabel) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::Custom) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::Locked) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::Disabled) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeType::OrigType) - .string() - .not_null() - ) - .to_owned() + manager.create_table(Table::create() + .table(NodeType::Table) + .if_not_exists() + .col(ColumnDef::new(NodeType::Type) + .integer() + .not_null() + .auto_increment() + .primary_key(), ) - .await + .col(ColumnDef::new(NodeType::Name) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Description) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Help) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::HasTitle) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::TitleLabel) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Custom) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Locked) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Disabled) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::OrigType) + .string() + .not_null() + ) + .to_owned() + ) + .await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(NodeType::Table) - .to_owned() - ) - .await + manager.drop_table(Table::drop() + .table(NodeType::Table) + .to_owned() + ) + .await + } +} + +impl MigrationName for Migration { + fn name(&self) -> &str { + module_name!() } } diff --git a/pagetop-node/src/migration/m20220316_000002_create_table_node.rs b/pagetop-node/src/migration/m20220316_000002_create_table_node.rs index 927c92f9..0b70860d 100644 --- a/pagetop-node/src/migration/m20220316_000002_create_table_node.rs +++ b/pagetop-node/src/migration/m20220316_000002_create_table_node.rs @@ -1,110 +1,113 @@ use pagetop::prelude::*; -/// The base table for nodes. #[derive(Iden)] enum Node { - Table, // Nombre de la tabla: node (Nodo). - Nid, // The primary identifier for a node - Vid, // The current {node_revision}.vid version identifier - Type, // The {node_type}.type of this node - Language, // The {languages}.language of this node - Title, // The title of this node, always treated as non-markup plain text - Uid, // The {users}.uid that owns this node; initially, this is the user that created it - Status, // Boolean indicating whether the node is published (visible to non-administrators) - Created, // The Unix timestamp when the node was created - Changed, // The Unix timestamp when the node was most recently saved - Comment, // Whether comments are allowed on this node: 0 = no, 1 = closed (read only), 2 = open (read/write) - Promote, // Boolean indicating whether the node should be displayed on the front page - Sticky, // Boolean indicating whether the node should be displayed at the top of lists in which it appears - Tnid, // The translation set id for this node, which equals the node id of the source post in each set - Translate, // A boolean indicating whether this translation page needs to be updated + Table, // The base table for nodes. + + Nid, // The primary identifier for a node. + Vid, // The current {node_revision}.vid version identifier. + Type, // The {node_type}.type of this node. + Language, // The {languages}.language of this node. + Title, // The title of this node, always treated as non-markup plain text. + Uid, // The {users}.uid that owns this node; initially, this is the user that + // created it. + Status, // Boolean indicating whether the node is published (visible to + // non-administrators). + Created, // The Unix timestamp when the node was created. + Changed, // The Unix timestamp when the node was most recently saved. + Comment, // Whether comments are allowed on this node: 0 = no, 1 = closed (read + // only), 2 = open (read/write). + Promote, // Boolean indicating whether the node should be displayed on the front + // page. + Sticky, // Boolean indicating whether the node should be displayed at the top of + // lists in which it appears. + Tnid, // The translation set id for this node, which equals the node id of the + // source post in each set. + Translate, // A boolean indicating whether this translation page needs to be updated. } pub struct Migration; -impl MigrationName for Migration { - fn name(&self) -> &str { - "m20220316_000002_create_table_node" - } -} - #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - Table::create() - .table(Node::Table) - .if_not_exists() - .col(ColumnDef::new(Node::Nid) - .integer() - .not_null() - .auto_increment() - .primary_key(), - ) - .col(ColumnDef::new(Node::Vid) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Type) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Language) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Title) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Uid) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Status) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Created) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Changed) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Comment) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Promote) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Sticky) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Tnid) - .string() - .not_null() - ) - .col(ColumnDef::new(Node::Translate) - .string() - .not_null() - ) - .to_owned() + manager.create_table(Table::create() + .table(Node::Table) + .if_not_exists() + .col(ColumnDef::new(Node::Nid) + .integer() + .not_null() + .auto_increment() + .primary_key(), ) - .await + .col(ColumnDef::new(Node::Vid) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Type) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Language) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Title) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Uid) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Status) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Created) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Changed) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Comment) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Promote) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Sticky) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Tnid) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Translate) + .string() + .not_null() + ) + .to_owned() + ) + .await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(Node::Table) - .to_owned() - ) - .await + manager.drop_table(Table::drop() + .table(Node::Table) + .to_owned() + ) + .await + } +} + +impl MigrationName for Migration { + fn name(&self) -> &str { + module_name!() } } diff --git a/pagetop-node/src/migration/m20220316_000003_create_table_node_access.rs b/pagetop-node/src/migration/m20220316_000003_create_table_node_access.rs index 2b55da75..8252b5d0 100644 --- a/pagetop-node/src/migration/m20220316_000003_create_table_node_access.rs +++ b/pagetop-node/src/migration/m20220316_000003_create_table_node_access.rs @@ -1,70 +1,73 @@ use pagetop::prelude::*; -// Identifies which realm/grant pairs a user must possess in order to view, update, or delete specific nodes. #[derive(Iden)] enum NodeAccess { - Table, // Nombre de la tabla: node_access (Acceso a nodos). - Nid, // The {node}.nid this record affects - Gid, // The grant ID a user must possess in the specified realm to gain this row's privileges on the node - Realm, // The realm in which the user must possess the grant ID. Each node access node can define one or more realms - GrantView, // Boolean indicating whether a user with the realm/grant pair can view this node - GrantUpdate, // Boolean indicating whether a user with the realm/grant pair can edit this node - GrantDelete, // Boolean indicating whether a user with the realm/grant pair can delete this node + Table, // Identifies which realm/grant pairs a user must possess in order to view, + // update, or delete specific nodes. + + Nid, // The {node}.nid this record affects. + Gid, // The grant ID a user must possess in the specified realm to gain this + // row's privileges on the node. + Realm, // The realm in which the user must possess the grant ID. Each node access + // node can define one or more realms. + GrantView, // Boolean indicating whether a user with the realm/grant pair can view this + // node. + GrantUpdate, // Boolean indicating whether a user with the realm/grant pair can edit this + // node. + GrantDelete, // Boolean indicating whether a user with the realm/grant pair can delete + // this node. } pub struct Migration; -impl MigrationName for Migration { - fn name(&self) -> &str { - "m20220316_000003_create_table_node_access" - } -} - #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - Table::create() - .table(NodeAccess::Table) - .if_not_exists() - .col(ColumnDef::new(NodeAccess::Nid) - .integer() - .not_null() - .auto_increment() - .primary_key(), - ) - .col(ColumnDef::new(NodeAccess::Gid) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeAccess::Realm) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeAccess::GrantView) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeAccess::GrantUpdate) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeAccess::GrantDelete) - .string() - .not_null() - ) - .to_owned() + manager.create_table(Table::create() + .table(NodeAccess::Table) + .if_not_exists() + .col(ColumnDef::new(NodeAccess::Nid) + .integer() + .not_null() + .auto_increment() + .primary_key(), ) - .await + .col(ColumnDef::new(NodeAccess::Gid) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::Realm) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::GrantView) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::GrantUpdate) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::GrantDelete) + .string() + .not_null() + ) + .to_owned() + ) + .await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(NodeAccess::Table) - .to_owned() - ) - .await + manager.drop_table(Table::drop() + .table(NodeAccess::Table) + .to_owned() + ) + .await + } +} + +impl MigrationName for Migration { + fn name(&self) -> &str { + module_name!() } } diff --git a/pagetop-node/src/migration/m20220316_000004_create_table_node_revision.rs b/pagetop-node/src/migration/m20220316_000004_create_table_node_revision.rs index 5162407c..9c414a60 100644 --- a/pagetop-node/src/migration/m20220316_000004_create_table_node_revision.rs +++ b/pagetop-node/src/migration/m20220316_000004_create_table_node_revision.rs @@ -1,90 +1,91 @@ use pagetop::prelude::*; -// Stores information about each saved version of a {node}. #[derive(Iden)] enum NodeRevision { - Table, // Nombre de la tabla: node_revisión (Versiones de nodos). - Nid, // The {node} this version belongs to - Vid, // The primary identifier for this version - Uid, // The {users}.uid that created this version - Title, // The title of this version - Log, // The log entry explaining the changes in this version - Timestamp, // A Unix timestamp indicating when this version was created - Status, // Boolean indicating whether the node (at the time of this revision) is published (visible to non-administrators) - Comment, // Whether comments are allowed on this node (at the time of this revision): 0 = no, 1 = closed (read only), 2 = open (read/write) - Promote, // Boolean indicating whether the node (at the time of this revision) should be displayed on the front page - Sticky, // Boolean indicating whether the node (at the time of this revision) should be displayed at the top of lists in which it appears + Table, // Stores information about each saved version of a {node}. + + Nid, // The {node} this version belongs to. + Vid, // The primary identifier for this version. + Uid, // The {users}.uid that created this version. + Title, // The title of this version. + Log, // The log entry explaining the changes in this version. + Timestamp, // A Unix timestamp indicating when this version was created. + Status, // Boolean indicating whether the node (at the time of this revision) is + // published (visible to non-administrators). + Comment, // Whether comments are allowed on this node (at the time of this revision): + // 0 = no, 1 = closed (read only), 2 = open (read/write). + Promote, // Boolean indicating whether the node (at the time of this revision) should + // be displayed on the front page. + Sticky, // Boolean indicating whether the node (at the time of this revision) should + // be displayed at the top of lists in which it appears. } pub struct Migration; -impl MigrationName for Migration { - fn name(&self) -> &str { - "m20220316_000004_create_table_node_revision" - } -} - #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - Table::create() - .table(NodeRevision::Table) - .if_not_exists() - .col(ColumnDef::new(NodeRevision::Nid) - .integer() - .not_null() - .auto_increment() - .primary_key(), - ) - .col(ColumnDef::new(NodeRevision::Vid) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Uid) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Title) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Log) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Timestamp) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Status) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Comment) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Promote) - .string() - .not_null() - ) - .col(ColumnDef::new(NodeRevision::Sticky) - .string() - .not_null() - ) - .to_owned() + manager.create_table(Table::create() + .table(NodeRevision::Table) + .if_not_exists() + .col(ColumnDef::new(NodeRevision::Nid) + .integer() + .not_null() + .auto_increment() + .primary_key(), ) - .await + .col(ColumnDef::new(NodeRevision::Vid) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Uid) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Title) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Log) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Timestamp) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Status) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Comment) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Promote) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Sticky) + .string() + .not_null() + ) + .to_owned() + ) + .await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(NodeRevision::Table) - .to_owned() - ) - .await + manager.drop_table(Table::drop() + .table(NodeRevision::Table) + .to_owned() + ) + .await + } +} + +impl MigrationName for Migration { + fn name(&self) -> &str { + module_name!() } } diff --git a/pagetop-user/src/migration/m20220312_000001_create_table_role.rs b/pagetop-user/src/migration/m20220312_000001_create_table_role.rs index 1028bb5a..61d21372 100644 --- a/pagetop-user/src/migration/m20220312_000001_create_table_role.rs +++ b/pagetop-user/src/migration/m20220312_000001_create_table_role.rs @@ -1,10 +1,12 @@ use pagetop::prelude::*; #[derive(Iden)] -enum Role { Table, - Rid, - Name, - Weight, +enum Role { + Table, // Store user roles. + + Rid, // Primary Key: Unique role ID. + Name, // Unique role name. + Weight, // The weight of this role in listings and the user interface. } pub struct Migration; @@ -12,37 +14,32 @@ pub struct Migration; #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager.create_table( - // Store user roles. - Table::create() - .table(Role::Table) - .if_not_exists() - // Primary Key: Unique role ID. - .col(ColumnDef::new(Role::Rid) - .unsigned() - .not_null() - .auto_increment() - .primary_key() - ) - // Unique role name. - .col(ColumnDef::new(Role::Name) - .string_len(64) - .not_null() - .unique_key() - ) - // The weight of this role in listings and the user interface. - .col(ColumnDef::new(Role::Weight) - .integer() - .not_null() - .default(0) - ) - // INDEXES. - .index(Index::create() - .name("name-weight") - .col(Role::Name) - .col(Role::Weight) - ) - .to_owned() + manager.create_table(Table::create() + .table(Role::Table) + .if_not_exists() + .col(ColumnDef::new(Role::Rid) + .unsigned() + .not_null() + .auto_increment() + .primary_key() + ) + .col(ColumnDef::new(Role::Name) + .string_len(64) + .not_null() + .unique_key() + ) + .col(ColumnDef::new(Role::Weight) + .integer() + .not_null() + .default(0) + ) + // INDEXES. + .index(Index::create() + .name("name-weight") + .col(Role::Name) + .col(Role::Weight) + ) + .to_owned() ) .await?; diff --git a/pagetop-user/src/migration/m20220312_000002_create_table_role_permission.rs b/pagetop-user/src/migration/m20220312_000002_create_table_role_permission.rs index 3c997872..d5e5f8f1 100644 --- a/pagetop-user/src/migration/m20220312_000002_create_table_role_permission.rs +++ b/pagetop-user/src/migration/m20220312_000002_create_table_role_permission.rs @@ -1,72 +1,64 @@ use pagetop::prelude::*; #[derive(Iden)] -enum RolePermission { Table, - Rid, - Permission, - Module, +enum RolePermission { + Table, // Stores the permissions assigned to user roles. + + Rid, // Foreign Key: Role::Rid. + Permission, // A single permission granted to the role identified by Rid. + Module, // The module declaring the permission. } + #[derive(Iden)] -enum Role { Table, - Rid, -// ... -} +enum Role { Table, Rid, /* ... */ } pub struct Migration; #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - // Stores the permissions assigned to user roles. - Table::create() - .table(RolePermission::Table) - .if_not_exists() - // Foreign Key: Role::Rid. - .col(ColumnDef::new(RolePermission::Rid) - .unsigned() - .not_null() - ) - // A single permission granted to the role identified by Rid. - .col(ColumnDef::new(RolePermission::Permission) - .string_len(128) - .not_null() - ) - // The module declaring the permission. - .col(ColumnDef::new(RolePermission::Module) - .string_len(255) - .not_null() - ) - // INDEXES. - .primary_key(Index::create() - .col(RolePermission::Rid) - .col(RolePermission::Permission) - ) - .index(Index::create() - .name("permission") - .col(RolePermission::Permission) - ) - .foreign_key( - ForeignKey::create() - .name("fk_role_permission-rid") - .from(RolePermission::Table, RolePermission::Rid) - .to(Role::Table, Role::Rid) - .on_delete(ForeignKeyAction::Cascade) - .on_update(ForeignKeyAction::Cascade) - ) - .to_owned() + manager.create_table(Table::create() + .table(RolePermission::Table) + .if_not_exists() + .col(ColumnDef::new(RolePermission::Rid) + .unsigned() + .not_null() ) - .await + .col(ColumnDef::new(RolePermission::Permission) + .string_len(128) + .not_null() + ) + .col(ColumnDef::new(RolePermission::Module) + .string_len(255) + .not_null() + ) + // INDEXES. + .primary_key(Index::create() + .col(RolePermission::Rid) + .col(RolePermission::Permission) + ) + .index(Index::create() + .name("permission") + .col(RolePermission::Permission) + ) + .foreign_key(ForeignKey::create() + .name("fk_role_permission-rid") + .from(RolePermission::Table, RolePermission::Rid) + .to(Role::Table, Role::Rid) + .on_delete(ForeignKeyAction::Cascade) + .on_update(ForeignKeyAction::Cascade) + ) + .to_owned() + ) + .await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(RolePermission::Table) - .to_owned() - ) - .await + manager.drop_table(Table::drop() + .table(RolePermission::Table) + .to_owned() + ) + .await } } diff --git a/pagetop-user/src/migration/m20220312_000003_create_table_user.rs b/pagetop-user/src/migration/m20220312_000003_create_table_user.rs index 2ef84287..4849eae5 100644 --- a/pagetop-user/src/migration/m20220312_000003_create_table_user.rs +++ b/pagetop-user/src/migration/m20220312_000003_create_table_user.rs @@ -1,17 +1,19 @@ use pagetop::prelude::*; #[derive(Iden)] -enum User { Table, - Uid, - Name, - Pass, - Mail, - Created, - Changed, - Access, - Login, - Status, - Timezone, +enum User { + Table, // Stores user data. + + Uid, // Primary Key: Unique user ID. + Name, // Unique user name. + Pass, // User's password (hashed). + Mail, // User's e-mail address. + Created, // Timestamp for when user was created. + Changed, // Timestamp for when user was changed. + Access, // Timestamp for previous time user accessed the site. + Login, // Timestamp for user's last login. + Status, // Whether the user is active(1) or blocked(0). + Timezone, // User's time zone. } pub struct Migration; @@ -19,74 +21,60 @@ pub struct Migration; #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - // Stores user data. - Table::create() - .table(User::Table) - .if_not_exists() - // Primary Key: Unique user ID. - .col(ColumnDef::new(User::Uid) - .unsigned() - .not_null() - .primary_key() - ) - // Unique user name. - .col(ColumnDef::new(User::Name) - .string_len(60) - .not_null() - .unique_key() - ) - // User's password (hashed). - .col(ColumnDef::new(User::Pass) - .string_len(128) - .not_null() - ) - // User's e-mail address. - .col(ColumnDef::new(User::Mail) - .string_len(255) - ) - // Timestamp for when user was created. - .col(ColumnDef::new(User::Created) - .timestamp() - .not_null() - ) - // Timestamp for when user was changed. - .col(ColumnDef::new(User::Changed) - .timestamp() - .not_null() - ) - // Timestamp for previous time user accessed the site. - .col(ColumnDef::new(User::Access) - .timestamp() - .not_null() - ) - // Timestamp for user's last login. - .col(ColumnDef::new(User::Login) - .timestamp() - .not_null() - ) - // Whether the user is active(1) or blocked(0). - .col(ColumnDef::new(User::Status) - .boolean() - .not_null() - ) - // User's time zone. - .col(ColumnDef::new(User::Timezone) - .string_len(32) - ) - .to_owned() + manager.create_table(Table::create() + .table(User::Table) + .if_not_exists() + .col(ColumnDef::new(User::Uid) + .unsigned() + .not_null() + .primary_key() ) - .await + .col(ColumnDef::new(User::Name) + .string_len(60) + .not_null() + .unique_key() + ) + .col(ColumnDef::new(User::Pass) + .string_len(128) + .not_null() + ) + .col(ColumnDef::new(User::Mail) + .string_len(255) + ) + .col(ColumnDef::new(User::Created) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Changed) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Access) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Login) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Status) + .boolean() + .not_null() + ) + .col(ColumnDef::new(User::Timezone) + .string_len(32) + ) + .to_owned() + ) + .await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(User::Table) - .to_owned() - ) - .await + manager.drop_table(Table::drop() + .table(User::Table) + .to_owned() + ) + .await } } diff --git a/pagetop-user/src/migration/m20220312_000004_create_table_user_role.rs b/pagetop-user/src/migration/m20220312_000004_create_table_user_role.rs index 373f7e53..1b15810c 100644 --- a/pagetop-user/src/migration/m20220312_000004_create_table_user_role.rs +++ b/pagetop-user/src/migration/m20220312_000004_create_table_user_role.rs @@ -1,75 +1,65 @@ use pagetop::prelude::*; #[derive(Iden)] -enum UserRole { Table, - Uid, - Rid, +enum UserRole { + Table, // Maps users to roles. + + Uid, // Foreign Key: User::Uid for user. + Rid, // Foreign Key: Role::Rid for role. } + #[derive(Iden)] -enum User { Table, - Uid, -// ... -} +enum User { Table, Uid, /* ... */ } + #[derive(Iden)] -enum Role { Table, - Rid, -// ... -} +enum Role { Table, Rid, /* ... */ } pub struct Migration; #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - // Maps users to roles. - Table::create() - .table(UserRole::Table) - .if_not_exists() - // Foreign Key: User::Uid for user. - .col(ColumnDef::new(UserRole::Uid) - .unsigned() - .not_null() - ) - // Foreign Key: Role::Rid for role. - .col(ColumnDef::new(UserRole::Rid) - .unsigned() - .not_null() - ) - // INDEXES. - .primary_key(Index::create() - .col(UserRole::Uid) - .col(UserRole::Rid) - ) - .foreign_key( - ForeignKey::create() - .name("fk_user_role-uid") - .from(UserRole::Table, UserRole::Uid) - .to(User::Table, User::Uid) - .on_delete(ForeignKeyAction::Cascade) - .on_update(ForeignKeyAction::Cascade) - ) - .foreign_key( - ForeignKey::create() - .name("fk_user_role-rid") - .from(UserRole::Table, UserRole::Rid) - .to(Role::Table, Role::Rid) - .on_delete(ForeignKeyAction::Cascade) - .on_update(ForeignKeyAction::Cascade) - ) - .to_owned() + manager.create_table(Table::create() + .table(UserRole::Table) + .if_not_exists() + .col(ColumnDef::new(UserRole::Uid) + .unsigned() + .not_null() ) - .await + .col(ColumnDef::new(UserRole::Rid) + .unsigned() + .not_null() + ) + // INDEXES. + .primary_key(Index::create() + .col(UserRole::Uid) + .col(UserRole::Rid) + ) + .foreign_key(ForeignKey::create() + .name("fk_user_role-uid") + .from(UserRole::Table, UserRole::Uid) + .to(User::Table, User::Uid) + .on_delete(ForeignKeyAction::Cascade) + .on_update(ForeignKeyAction::Cascade) + ) + .foreign_key(ForeignKey::create() + .name("fk_user_role-rid") + .from(UserRole::Table, UserRole::Rid) + .to(Role::Table, Role::Rid) + .on_delete(ForeignKeyAction::Cascade) + .on_update(ForeignKeyAction::Cascade) + ) + .to_owned() + ) + .await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(UserRole::Table) - .to_owned() - ) - .await + manager.drop_table(Table::drop() + .table(UserRole::Table) + .to_owned() + ) + .await } }