using Microsoft.EntityFrameworkCore.Migrations; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace AsbCloudDb.Migrations { public partial class Fixed_Role_Permissions_Value : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropPrimaryKey( name: "PK_t_relation_user_user_role", table: "t_relation_user_user_role"); migrationBuilder.DropIndex( name: "IX_t_relation_user_user_role_id_user", table: "t_relation_user_user_role"); migrationBuilder.DropPrimaryKey( name: "PK_t_relation_user_role_permission", table: "t_relation_user_role_permission"); migrationBuilder.DropIndex( name: "IX_t_relation_user_role_permission_id_user_role", table: "t_relation_user_role_permission"); migrationBuilder.DropColumn( name: "id", table: "t_relation_user_user_role"); migrationBuilder.DropColumn( name: "type", table: "t_permission"); migrationBuilder.RenameColumn( name: "role_type", table: "t_user_role", newName: "id_type"); migrationBuilder.RenameColumn( name: "id", table: "t_relation_user_role_permission", newName: "permission_value"); migrationBuilder.RenameColumn( name: "caption", table: "t_permission", newName: "name"); migrationBuilder.AlterColumn( name: "id_parent", table: "t_user_role", type: "integer", nullable: true, comment: "От какой роли унаследована данная роль", oldClrType: typeof(int), oldType: "integer", oldComment: "От какой роли унаследована данная роль"); migrationBuilder.AlterColumn( name: "permission_value", table: "t_relation_user_role_permission", type: "integer", nullable: false, oldClrType: typeof(int), oldType: "integer") .OldAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); migrationBuilder.AddColumn( name: "bit_description", table: "t_permission", type: "jsonb", nullable: true, comment: "Описание каждого бита разрешений"); migrationBuilder.AddColumn( name: "description", table: "t_permission", type: "character varying(255)", maxLength: 255, nullable: true, comment: "Краткое описание"); migrationBuilder.AddPrimaryKey( name: "PK_t_relation_user_user_role", table: "t_relation_user_user_role", columns: new[] { "id_user", "id_user_role" }); migrationBuilder.AddPrimaryKey( name: "PK_t_relation_user_role_permission", table: "t_relation_user_role_permission", columns: new[] { "id_user_role", "id_permission" }); migrationBuilder.InsertData( table: "t_relation_user_user_role", columns: new[] { "id_user", "id_user_role" }, values: new object[] { 1, 2 }); migrationBuilder.UpdateData( table: "t_user_role", keyColumn: "id", keyValue: 1, column: "id_parent", value: null); migrationBuilder.UpdateData( table: "t_user_role", keyColumn: "id", keyValue: 2, column: "id_parent", value: null); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropPrimaryKey( name: "PK_t_relation_user_user_role", table: "t_relation_user_user_role"); migrationBuilder.DropPrimaryKey( name: "PK_t_relation_user_role_permission", table: "t_relation_user_role_permission"); migrationBuilder.DeleteData( table: "t_relation_user_user_role", keyColumns: new[] { "id_user", "id_user_role" }, keyValues: new object[] { 1, 2 }); migrationBuilder.DropColumn( name: "bit_description", table: "t_permission"); migrationBuilder.DropColumn( name: "description", table: "t_permission"); migrationBuilder.RenameColumn( name: "id_type", table: "t_user_role", newName: "role_type"); migrationBuilder.RenameColumn( name: "permission_value", table: "t_relation_user_role_permission", newName: "id"); migrationBuilder.RenameColumn( name: "name", table: "t_permission", newName: "caption"); migrationBuilder.AlterColumn( name: "id_parent", table: "t_user_role", type: "integer", nullable: false, defaultValue: 0, comment: "От какой роли унаследована данная роль", oldClrType: typeof(int), oldType: "integer", oldNullable: true, oldComment: "От какой роли унаследована данная роль"); migrationBuilder.AddColumn( name: "id", table: "t_relation_user_user_role", type: "integer", nullable: false, defaultValue: 0) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); migrationBuilder.AlterColumn( name: "id", table: "t_relation_user_role_permission", type: "integer", nullable: false, oldClrType: typeof(int), oldType: "integer") .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); migrationBuilder.AddColumn( name: "type", table: "t_permission", type: "integer", nullable: false, defaultValue: 0, comment: "1-чтение, 2-запись, 3-чтение и запись"); migrationBuilder.AddPrimaryKey( name: "PK_t_relation_user_user_role", table: "t_relation_user_user_role", column: "id"); migrationBuilder.AddPrimaryKey( name: "PK_t_relation_user_role_permission", table: "t_relation_user_role_permission", column: "id"); migrationBuilder.UpdateData( table: "t_user_role", keyColumn: "id", keyValue: 1, column: "id_parent", value: 0); migrationBuilder.UpdateData( table: "t_user_role", keyColumn: "id", keyValue: 2, column: "id_parent", value: 0); migrationBuilder.CreateIndex( name: "IX_t_relation_user_user_role_id_user", table: "t_relation_user_user_role", column: "id_user"); migrationBuilder.CreateIndex( name: "IX_t_relation_user_role_permission_id_user_role", table: "t_relation_user_role_permission", column: "id_user_role"); } } }