migrate

package
v0.3.9-beta.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// WithGlobalUniqueID sets the universal ids options to the migration.
	// If this option is enabled, ent migration will allocate a 1<<32 range
	// for the ids of each entity (table).
	// Note that this option cannot be applied on tables that already exist.
	WithGlobalUniqueID = schema.WithGlobalUniqueID
	// WithDropColumn sets the drop column option to the migration.
	// If this option is enabled, ent migration will drop old columns
	// that were used for both fields and edges. This defaults to false.
	WithDropColumn = schema.WithDropColumn
	// WithDropIndex sets the drop index option to the migration.
	// If this option is enabled, ent migration will drop old indexes
	// that were defined in the schema. This defaults to false.
	// Note that unique constraints are defined using `UNIQUE INDEX`,
	// and therefore, it's recommended to enable this option to get more
	// flexibility in the schema changes.
	WithDropIndex = schema.WithDropIndex
	// WithForeignKeys enables creating foreign-key in schema DDL. This defaults to true.
	WithForeignKeys = schema.WithForeignKeys
)
View Source
var (
	// LionAuthProvidersColumns holds the columns for the "lion_auth_providers" table.
	LionAuthProvidersColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "provider_type", Type: field.TypeInt},
		{Name: "client_id", Type: field.TypeString, Default: ""},
		{Name: "enabled", Type: field.TypeBool, Default: true},
		{Name: "client_secret_encrypted", Type: field.TypeBytes},
		{Name: "scopes", Type: field.TypeString, Default: ""},
		{Name: "redirect_uri", Type: field.TypeString, Default: ""},
		{Name: "issuer", Type: field.TypeString, Default: ""},
		{Name: "authorization_endpoint", Type: field.TypeString, Default: ""},
		{Name: "token_endpoint", Type: field.TypeString, Default: ""},
		{Name: "userinfo_endpoint", Type: field.TypeString, Default: ""},
	}
	// LionAuthProvidersTable holds the schema information for the "lion_auth_providers" table.
	LionAuthProvidersTable = &schema.Table{
		Name:       "lion_auth_providers",
		Columns:    LionAuthProvidersColumns,
		PrimaryKey: []*schema.Column{LionAuthProvidersColumns[0]},
	}
	// LionCredentialsColumns holds the columns for the "lion_credentials" table.
	LionCredentialsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "name", Type: field.TypeString},
		{Name: "credential_type", Type: field.TypeInt, Default: 0},
		{Name: "credential_algorithm", Type: field.TypeInt, Default: 0},
		{Name: "credential_usage", Type: field.TypeInt, Default: 0},
		{Name: "credential_visibility", Type: field.TypeInt, Default: 1},
		{Name: "credential_status", Type: field.TypeInt, Default: 1},
		{Name: "credential_source", Type: field.TypeInt, Default: 0},
		{Name: "key_id", Type: field.TypeString, Nullable: true},
		{Name: "api_key", Type: field.TypeString, Nullable: true},
		{Name: "api_secret_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "public_key", Type: field.TypeString, Nullable: true},
		{Name: "private_key_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "passphrase_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "certificate", Type: field.TypeBytes, Nullable: true},
		{Name: "ca_chain", Type: field.TypeJSON, Nullable: true},
		{Name: "license_key_encrypted", Type: field.TypeString, Nullable: true},
		{Name: "signature", Type: field.TypeString, Nullable: true},
		{Name: "symmetric_key", Type: field.TypeBytes, Nullable: true},
		{Name: "jwks_uri", Type: field.TypeString, Nullable: true},
		{Name: "not_before", Type: field.TypeTime, Nullable: true},
		{Name: "expires_at", Type: field.TypeTime, Nullable: true},
		{Name: "metadata", Type: field.TypeJSON, Nullable: true},
		{Name: "description", Type: field.TypeString, Nullable: true},
	}
	// LionCredentialsTable holds the schema information for the "lion_credentials" table.
	LionCredentialsTable = &schema.Table{
		Name:       "lion_credentials",
		Columns:    LionCredentialsColumns,
		PrimaryKey: []*schema.Column{LionCredentialsColumns[0]},
	}
	// LionDemoColumns holds the columns for the "lion_demo" table.
	LionDemoColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "name", Type: field.TypeString, Default: "grpc-kit"},
	}
	// LionDemoTable holds the schema information for the "lion_demo" table.
	LionDemoTable = &schema.Table{
		Name:       "lion_demo",
		Columns:    LionDemoColumns,
		PrimaryKey: []*schema.Column{LionDemoColumns[0]},
	}
	// LionDepartmentRolesColumns holds the columns for the "lion_department_roles" table.
	LionDepartmentRolesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "department_id", Type: field.TypeInt},
		{Name: "role_id", Type: field.TypeInt},
	}
	// LionDepartmentRolesTable holds the schema information for the "lion_department_roles" table.
	LionDepartmentRolesTable = &schema.Table{
		Name:       "lion_department_roles",
		Columns:    LionDepartmentRolesColumns,
		PrimaryKey: []*schema.Column{LionDepartmentRolesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_department_roles_lion_departments_lion_department_roles",
				Columns:    []*schema.Column{LionDepartmentRolesColumns[5]},
				RefColumns: []*schema.Column{LionDepartmentsColumns[0]},
				OnDelete:   schema.NoAction,
			},
			{
				Symbol:     "lion_department_roles_lion_roles_lion_department_roles",
				Columns:    []*schema.Column{LionDepartmentRolesColumns[6]},
				RefColumns: []*schema.Column{LionRolesColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "departmentroles_role_id_department_id",
				Unique:  true,
				Columns: []*schema.Column{LionDepartmentRolesColumns[6], LionDepartmentRolesColumns[5]},
			},
		},
	}
	// LionDepartmentsColumns holds the columns for the "lion_departments" table.
	LionDepartmentsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "parent_id", Type: field.TypeInt, Default: 0},
		{Name: "name", Type: field.TypeString, Size: 256},
		{Name: "department_type", Type: field.TypeInt, Default: 0},
		{Name: "department_status", Type: field.TypeInt, Default: 1},
		{Name: "sort_order", Type: field.TypeInt, Default: 100},
		{Name: "email_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "phone_number_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "address_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "cost_center_code", Type: field.TypeString, Nullable: true},
		{Name: "budget_item_code", Type: field.TypeString, Nullable: true},
		{Name: "max_members", Type: field.TypeInt, Default: 0},
		{Name: "external_id", Type: field.TypeString, Nullable: true},
		{Name: "metadata", Type: field.TypeJSON, Nullable: true},
		{Name: "description", Type: field.TypeString, Default: ""},
	}
	// LionDepartmentsTable holds the schema information for the "lion_departments" table.
	LionDepartmentsTable = &schema.Table{
		Name:       "lion_departments",
		Columns:    LionDepartmentsColumns,
		PrimaryKey: []*schema.Column{LionDepartmentsColumns[0]},
	}
	// LionGroupRolesColumns holds the columns for the "lion_group_roles" table.
	LionGroupRolesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "group_id", Type: field.TypeInt},
		{Name: "role_id", Type: field.TypeInt},
	}
	// LionGroupRolesTable holds the schema information for the "lion_group_roles" table.
	LionGroupRolesTable = &schema.Table{
		Name:       "lion_group_roles",
		Columns:    LionGroupRolesColumns,
		PrimaryKey: []*schema.Column{LionGroupRolesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_group_roles_lion_groups_lion_groups",
				Columns:    []*schema.Column{LionGroupRolesColumns[5]},
				RefColumns: []*schema.Column{LionGroupsColumns[0]},
				OnDelete:   schema.NoAction,
			},
			{
				Symbol:     "lion_group_roles_lion_roles_lion_role_groups",
				Columns:    []*schema.Column{LionGroupRolesColumns[6]},
				RefColumns: []*schema.Column{LionRolesColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "grouproles_group_id_role_id",
				Unique:  true,
				Columns: []*schema.Column{LionGroupRolesColumns[5], LionGroupRolesColumns[6]},
			},
		},
	}
	// LionGroupsColumns holds the columns for the "lion_groups" table.
	LionGroupsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "name", Type: field.TypeString, Unique: true, Size: 128},
		{Name: "group_type", Type: field.TypeInt, Default: 0},
		{Name: "group_status", Type: field.TypeInt, Default: 0},
		{Name: "sort_order", Type: field.TypeInt, Default: 100},
		{Name: "parent_id", Type: field.TypeInt, Default: 0},
		{Name: "max_members", Type: field.TypeInt, Default: 0},
		{Name: "metadata", Type: field.TypeJSON},
		{Name: "external_id", Type: field.TypeString, Default: ""},
		{Name: "description", Type: field.TypeString, Default: ""},
		{Name: "department_id", Type: field.TypeInt, Default: 1},
	}
	// LionGroupsTable holds the schema information for the "lion_groups" table.
	LionGroupsTable = &schema.Table{
		Name:       "lion_groups",
		Columns:    LionGroupsColumns,
		PrimaryKey: []*schema.Column{LionGroupsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_groups_lion_departments_lion_groups",
				Columns:    []*schema.Column{LionGroupsColumns[15]},
				RefColumns: []*schema.Column{LionDepartmentsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "groups_name",
				Unique:  true,
				Columns: []*schema.Column{LionGroupsColumns[6]},
			},
			{
				Name:    "groups_group_type",
				Unique:  false,
				Columns: []*schema.Column{LionGroupsColumns[7]},
			},
			{
				Name:    "groups_group_status",
				Unique:  false,
				Columns: []*schema.Column{LionGroupsColumns[8]},
			},
		},
	}
	// LionPermissionsColumns holds the columns for the "lion_permissions" table.
	LionPermissionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "resource_id", Type: field.TypeInt},
	}
	// LionPermissionsTable holds the schema information for the "lion_permissions" table.
	LionPermissionsTable = &schema.Table{
		Name:       "lion_permissions",
		Columns:    LionPermissionsColumns,
		PrimaryKey: []*schema.Column{LionPermissionsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_permissions_lion_resources_lion_permissions",
				Columns:    []*schema.Column{LionPermissionsColumns[5]},
				RefColumns: []*schema.Column{LionResourcesColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
	}
	// LionPoliciesColumns holds the columns for the "lion_policies" table.
	LionPoliciesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "name", Type: field.TypeString, Default: "grpc-kit"},
	}
	// LionPoliciesTable holds the schema information for the "lion_policies" table.
	LionPoliciesTable = &schema.Table{
		Name:       "lion_policies",
		Columns:    LionPoliciesColumns,
		PrimaryKey: []*schema.Column{LionPoliciesColumns[0]},
	}
	// LionResourcesColumns holds the columns for the "lion_resources" table.
	LionResourcesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "parent_id", Type: field.TypeInt, Default: 0},
		{Name: "name", Type: field.TypeString, Size: 128},
		{Name: "sort_order", Type: field.TypeInt, Default: 100},
		{Name: "resource_type", Type: field.TypeInt, Default: 0},
		{Name: "resource_scope", Type: field.TypeInt, Default: 0},
		{Name: "enabled", Type: field.TypeBool, Default: true},
		{Name: "hidden", Type: field.TypeBool, Default: false},
		{Name: "hide_children", Type: field.TypeBool, Default: false},
		{Name: "path", Type: field.TypeString, Size: 512, Default: ""},
		{Name: "icon", Type: field.TypeString, Size: 256, Default: ""},
		{Name: "component", Type: field.TypeString, Size: 256, Default: ""},
		{Name: "description", Type: field.TypeString, Default: ""},
	}
	// LionResourcesTable holds the schema information for the "lion_resources" table.
	LionResourcesTable = &schema.Table{
		Name:       "lion_resources",
		Columns:    LionResourcesColumns,
		PrimaryKey: []*schema.Column{LionResourcesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "resources_parent_id",
				Unique:  false,
				Columns: []*schema.Column{LionResourcesColumns[6]},
			},
			{
				Name:    "resources_resource_type_resource_scope",
				Unique:  false,
				Columns: []*schema.Column{LionResourcesColumns[9], LionResourcesColumns[10]},
			},
			{
				Name:    "resources_enabled",
				Unique:  false,
				Columns: []*schema.Column{LionResourcesColumns[11]},
			},
			{
				Name:    "resources_sort_order",
				Unique:  false,
				Columns: []*schema.Column{LionResourcesColumns[8]},
			},
			{
				Name:    "resources_path",
				Unique:  false,
				Columns: []*schema.Column{LionResourcesColumns[14]},
			},
			{
				Name:    "resources_parent_id_sort_order",
				Unique:  false,
				Columns: []*schema.Column{LionResourcesColumns[6], LionResourcesColumns[8]},
			},
		},
	}
	// LionRolePermissionsColumns holds the columns for the "lion_role_permissions" table.
	LionRolePermissionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "permission_id", Type: field.TypeInt},
		{Name: "role_id", Type: field.TypeInt},
	}
	// LionRolePermissionsTable holds the schema information for the "lion_role_permissions" table.
	LionRolePermissionsTable = &schema.Table{
		Name:       "lion_role_permissions",
		Columns:    LionRolePermissionsColumns,
		PrimaryKey: []*schema.Column{LionRolePermissionsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_role_permissions_lion_permissions_lion_role_permissions",
				Columns:    []*schema.Column{LionRolePermissionsColumns[5]},
				RefColumns: []*schema.Column{LionPermissionsColumns[0]},
				OnDelete:   schema.NoAction,
			},
			{
				Symbol:     "lion_role_permissions_lion_roles_lion_role_permissions",
				Columns:    []*schema.Column{LionRolePermissionsColumns[6]},
				RefColumns: []*schema.Column{LionRolesColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "rolepermissions_role_id_permission_id",
				Unique:  true,
				Columns: []*schema.Column{LionRolePermissionsColumns[6], LionRolePermissionsColumns[5]},
			},
		},
	}
	// LionRolesColumns holds the columns for the "lion_roles" table.
	LionRolesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "name", Type: field.TypeString, Size: 256},
		{Name: "role_type", Type: field.TypeInt, Default: 0},
		{Name: "role_status", Type: field.TypeInt, Default: 0},
		{Name: "sort_order", Type: field.TypeInt, Default: 100},
		{Name: "description", Type: field.TypeString, Default: ""},
	}
	// LionRolesTable holds the schema information for the "lion_roles" table.
	LionRolesTable = &schema.Table{
		Name:       "lion_roles",
		Columns:    LionRolesColumns,
		PrimaryKey: []*schema.Column{LionRolesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "roles_name",
				Unique:  true,
				Columns: []*schema.Column{LionRolesColumns[6]},
			},
		},
	}
	// LionUserDepartmentsColumns holds the columns for the "lion_user_departments" table.
	LionUserDepartmentsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "member_role", Type: field.TypeInt, Default: 0},
		{Name: "member_status", Type: field.TypeInt, Default: 0},
		{Name: "member_type", Type: field.TypeInt, Default: 0},
		{Name: "expired_at", Type: field.TypeTime, Nullable: true},
		{Name: "metadata", Type: field.TypeString, Nullable: true},
		{Name: "description", Type: field.TypeString, Default: ""},
		{Name: "department_id", Type: field.TypeInt},
		{Name: "user_id", Type: field.TypeInt},
	}
	// LionUserDepartmentsTable holds the schema information for the "lion_user_departments" table.
	LionUserDepartmentsTable = &schema.Table{
		Name:       "lion_user_departments",
		Columns:    LionUserDepartmentsColumns,
		PrimaryKey: []*schema.Column{LionUserDepartmentsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_user_departments_lion_departments_lion_user_departments",
				Columns:    []*schema.Column{LionUserDepartmentsColumns[11]},
				RefColumns: []*schema.Column{LionDepartmentsColumns[0]},
				OnDelete:   schema.NoAction,
			},
			{
				Symbol:     "lion_user_departments_lion_users_lion_user_departments",
				Columns:    []*schema.Column{LionUserDepartmentsColumns[12]},
				RefColumns: []*schema.Column{LionUsersColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "userdepartments_user_id_department_id",
				Unique:  true,
				Columns: []*schema.Column{LionUserDepartmentsColumns[12], LionUserDepartmentsColumns[11]},
			},
			{
				Name:    "userdepartments_user_id",
				Unique:  true,
				Columns: []*schema.Column{LionUserDepartmentsColumns[12]},
				Annotation: &entsql.IndexAnnotation{
					Where: "member_type = 1",
				},
			},
		},
	}
	// LionUserGroupsColumns holds the columns for the "lion_user_groups" table.
	LionUserGroupsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "member_role", Type: field.TypeInt, Default: 0},
		{Name: "member_status", Type: field.TypeInt, Default: 0},
		{Name: "joined_at", Type: field.TypeTime, Nullable: true},
		{Name: "expired_at", Type: field.TypeTime, Nullable: true},
		{Name: "metadata", Type: field.TypeJSON, Nullable: true},
		{Name: "description", Type: field.TypeString, Default: ""},
		{Name: "group_id", Type: field.TypeInt},
		{Name: "user_id", Type: field.TypeInt},
	}
	// LionUserGroupsTable holds the schema information for the "lion_user_groups" table.
	LionUserGroupsTable = &schema.Table{
		Name:       "lion_user_groups",
		Columns:    LionUserGroupsColumns,
		PrimaryKey: []*schema.Column{LionUserGroupsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_user_groups_lion_groups_lion_user_groups",
				Columns:    []*schema.Column{LionUserGroupsColumns[11]},
				RefColumns: []*schema.Column{LionGroupsColumns[0]},
				OnDelete:   schema.NoAction,
			},
			{
				Symbol:     "lion_user_groups_lion_users_lion_user_groups",
				Columns:    []*schema.Column{LionUserGroupsColumns[12]},
				RefColumns: []*schema.Column{LionUsersColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "usergroups_user_id_group_id",
				Unique:  true,
				Columns: []*schema.Column{LionUserGroupsColumns[12], LionUserGroupsColumns[11]},
			},
		},
	}
	// LionUserIdentitiesColumns holds the columns for the "lion_user_identities" table.
	LionUserIdentitiesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "provider_user_id", Type: field.TypeString},
		{Name: "provider_union_id", Type: field.TypeString, Nullable: true},
		{Name: "password_hash", Type: field.TypeString, Default: ""},
		{Name: "mfa_enabled", Type: field.TypeBool, Default: false},
		{Name: "mfa_secret_encrypted", Type: field.TypeBytes},
		{Name: "access_token_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "refresh_token_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "password_changed_at", Type: field.TypeTime, Nullable: true},
		{Name: "password_expires_at", Type: field.TypeTime, Nullable: true},
		{Name: "token_expires_at", Type: field.TypeTime, Nullable: true},
		{Name: "last_login_at", Type: field.TypeTime, Nullable: true},
		{Name: "provider_id", Type: field.TypeInt},
		{Name: "user_id", Type: field.TypeInt},
	}
	// LionUserIdentitiesTable holds the schema information for the "lion_user_identities" table.
	LionUserIdentitiesTable = &schema.Table{
		Name:       "lion_user_identities",
		Columns:    LionUserIdentitiesColumns,
		PrimaryKey: []*schema.Column{LionUserIdentitiesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_user_identities_lion_auth_providers_lion_user_identities",
				Columns:    []*schema.Column{LionUserIdentitiesColumns[16]},
				RefColumns: []*schema.Column{LionAuthProvidersColumns[0]},
				OnDelete:   schema.NoAction,
			},
			{
				Symbol:     "lion_user_identities_lion_users_lion_user_identities",
				Columns:    []*schema.Column{LionUserIdentitiesColumns[17]},
				RefColumns: []*schema.Column{LionUsersColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "useridentities_user_id_provider_id",
				Unique:  true,
				Columns: []*schema.Column{LionUserIdentitiesColumns[17], LionUserIdentitiesColumns[16]},
			},
		},
	}
	// LionUserProfilesColumns holds the columns for the "lion_user_profiles" table.
	LionUserProfilesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "user_id", Type: field.TypeInt},
		{Name: "attr_key", Type: field.TypeString},
		{Name: "attr_value", Type: field.TypeString},
	}
	// LionUserProfilesTable holds the schema information for the "lion_user_profiles" table.
	LionUserProfilesTable = &schema.Table{
		Name:       "lion_user_profiles",
		Columns:    LionUserProfilesColumns,
		PrimaryKey: []*schema.Column{LionUserProfilesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "userprofiles_user_id_attr_key",
				Unique:  true,
				Columns: []*schema.Column{LionUserProfilesColumns[4], LionUserProfilesColumns[5]},
			},
		},
	}
	// LionUserRolesColumns holds the columns for the "lion_user_roles" table.
	LionUserRolesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "role_id", Type: field.TypeInt},
		{Name: "user_id", Type: field.TypeInt},
	}
	// LionUserRolesTable holds the schema information for the "lion_user_roles" table.
	LionUserRolesTable = &schema.Table{
		Name:       "lion_user_roles",
		Columns:    LionUserRolesColumns,
		PrimaryKey: []*schema.Column{LionUserRolesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "lion_user_roles_lion_roles_lion_user_roles",
				Columns:    []*schema.Column{LionUserRolesColumns[5]},
				RefColumns: []*schema.Column{LionRolesColumns[0]},
				OnDelete:   schema.NoAction,
			},
			{
				Symbol:     "lion_user_roles_lion_users_lion_user_roles",
				Columns:    []*schema.Column{LionUserRolesColumns[6]},
				RefColumns: []*schema.Column{LionUsersColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "userroles_user_id_role_id",
				Unique:  true,
				Columns: []*schema.Column{LionUserRolesColumns[6], LionUserRolesColumns[5]},
			},
		},
	}
	// LionUsersColumns holds the columns for the "lion_users" table.
	LionUsersColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
		{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "username", Type: field.TypeString, Unique: true, Size: 255},
		{Name: "realname_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "user_type", Type: field.TypeInt, Default: 0},
		{Name: "user_status", Type: field.TypeInt, Default: 0},
		{Name: "national_id_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "national_id_hash", Type: field.TypeString, Nullable: true},
		{Name: "nickname", Type: field.TypeString, Nullable: true},
		{Name: "profile", Type: field.TypeString, Nullable: true, Size: 500},
		{Name: "picture", Type: field.TypeString, Nullable: true},
		{Name: "website", Type: field.TypeString, Nullable: true},
		{Name: "email_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "email_hash", Type: field.TypeString, Nullable: true},
		{Name: "email_verified", Type: field.TypeBool, Default: false},
		{Name: "gender", Type: field.TypeInt, Default: 0},
		{Name: "birthdate", Type: field.TypeTime, Nullable: true},
		{Name: "timezone", Type: field.TypeString, Nullable: true},
		{Name: "locale", Type: field.TypeString, Nullable: true},
		{Name: "phone_number_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "phone_number_hash", Type: field.TypeString, Nullable: true},
		{Name: "phone_number_verified", Type: field.TypeBool, Default: false},
		{Name: "address_encrypted", Type: field.TypeBytes, Nullable: true},
		{Name: "description", Type: field.TypeString, Nullable: true, Size: 4096},
		{Name: "metadata", Type: field.TypeJSON, Nullable: true},
	}
	// LionUsersTable holds the schema information for the "lion_users" table.
	LionUsersTable = &schema.Table{
		Name:       "lion_users",
		Columns:    LionUsersColumns,
		PrimaryKey: []*schema.Column{LionUsersColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "users_email_hash",
				Unique:  true,
				Columns: []*schema.Column{LionUsersColumns[17]},
				Annotation: &entsql.IndexAnnotation{
					Where: "email_hash != '' AND email_hash IS NOT NULL",
				},
			},
			{
				Name:    "users_phone_number_hash",
				Unique:  true,
				Columns: []*schema.Column{LionUsersColumns[24]},
				Annotation: &entsql.IndexAnnotation{
					Where: "phone_number_hash != '' AND phone_number_hash IS NOT NULL",
				},
			},
			{
				Name:    "users_national_id_hash",
				Unique:  true,
				Columns: []*schema.Column{LionUsersColumns[11]},
				Annotation: &entsql.IndexAnnotation{
					Where: "national_id_hash != '' AND national_id_hash IS NOT NULL",
				},
			},
			{
				Name:    "users_deleted_at_user_status_created_at",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[3], LionUsersColumns[9], LionUsersColumns[1]},
			},
			{
				Name:    "users_deleted_at_user_type_user_status_created_at",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[3], LionUsersColumns[8], LionUsersColumns[9], LionUsersColumns[1]},
			},
			{
				Name:    "users_deleted_at_created_at",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[3], LionUsersColumns[1]},
			},
			{
				Name:    "users_user_type_user_status",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[8], LionUsersColumns[9]},
			},
			{
				Name:    "users_user_type_created_at",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[8], LionUsersColumns[1]},
			},
			{
				Name:    "users_user_type",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[8]},
			},
			{
				Name:    "users_user_status",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[9]},
			},
			{
				Name:    "users_email_hash_email_verified",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[17], LionUsersColumns[18]},
				Annotation: &entsql.IndexAnnotation{
					Where: "email_hash != '' AND email_hash IS NOT NULL",
				},
			},
			{
				Name:    "users_phone_number_hash_phone_number_verified",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[24], LionUsersColumns[25]},
				Annotation: &entsql.IndexAnnotation{
					Where: "phone_number_hash != '' AND phone_number_hash IS NOT NULL",
				},
			},
			{
				Name:    "users_created_at",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[1]},
			},
			{
				Name:    "users_created_by_created_at",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[4], LionUsersColumns[1]},
			},
			{
				Name:    "users_updated_by_updated_at",
				Unique:  false,
				Columns: []*schema.Column{LionUsersColumns[5], LionUsersColumns[2]},
			},
		},
	}
	// Tables holds all the tables in the schema.
	Tables = []*schema.Table{
		LionAuthProvidersTable,
		LionCredentialsTable,
		LionDemoTable,
		LionDepartmentRolesTable,
		LionDepartmentsTable,
		LionGroupRolesTable,
		LionGroupsTable,
		LionPermissionsTable,
		LionPoliciesTable,
		LionResourcesTable,
		LionRolePermissionsTable,
		LionRolesTable,
		LionUserDepartmentsTable,
		LionUserGroupsTable,
		LionUserIdentitiesTable,
		LionUserProfilesTable,
		LionUserRolesTable,
		LionUsersTable,
	}
)

Functions

func Create

func Create(ctx context.Context, s *Schema, tables []*schema.Table, opts ...schema.MigrateOption) error

Create creates all table resources using the given schema driver.

Types

type Schema

type Schema struct {
	// contains filtered or unexported fields
}

Schema is the API for creating, migrating and dropping a schema.

func NewSchema

func NewSchema(drv dialect.Driver) *Schema

NewSchema creates a new schema client.

func (*Schema) Create

func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error

Create creates all schema resources.

func (*Schema) WriteTo

func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error

WriteTo writes the schema changes to w instead of running them against the database.

if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil {
	log.Fatal(err)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL