20210320181425_AddIndexesAndCollations.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. #pragma warning disable CS1591
  2. #pragma warning disable SA1601
  3. using System;
  4. using Microsoft.EntityFrameworkCore.Migrations;
  5. namespace Jellyfin.Server.Implementations.Migrations
  6. {
  7. public partial class AddIndexesAndCollations : Migration
  8. {
  9. protected override void Up(MigrationBuilder migrationBuilder)
  10. {
  11. migrationBuilder.DropForeignKey(
  12. name: "FK_ImageInfos_Users_UserId",
  13. schema: "jellyfin",
  14. table: "ImageInfos");
  15. migrationBuilder.DropForeignKey(
  16. name: "FK_Permissions_Users_Permission_Permissions_Guid",
  17. schema: "jellyfin",
  18. table: "Permissions");
  19. migrationBuilder.DropForeignKey(
  20. name: "FK_Preferences_Users_Preference_Preferences_Guid",
  21. schema: "jellyfin",
  22. table: "Preferences");
  23. migrationBuilder.DropIndex(
  24. name: "IX_Preferences_Preference_Preferences_Guid",
  25. schema: "jellyfin",
  26. table: "Preferences");
  27. migrationBuilder.DropIndex(
  28. name: "IX_Permissions_Permission_Permissions_Guid",
  29. schema: "jellyfin",
  30. table: "Permissions");
  31. migrationBuilder.DropIndex(
  32. name: "IX_DisplayPreferences_UserId",
  33. schema: "jellyfin",
  34. table: "DisplayPreferences");
  35. migrationBuilder.DropIndex(
  36. name: "IX_CustomItemDisplayPreferences_UserId",
  37. schema: "jellyfin",
  38. table: "CustomItemDisplayPreferences");
  39. migrationBuilder.AlterColumn<string>(
  40. name: "Username",
  41. schema: "jellyfin",
  42. table: "Users",
  43. type: "TEXT",
  44. maxLength: 255,
  45. nullable: false,
  46. collation: "NOCASE",
  47. oldClrType: typeof(string),
  48. oldType: "TEXT",
  49. oldMaxLength: 255);
  50. migrationBuilder.AddColumn<Guid>(
  51. name: "UserId",
  52. schema: "jellyfin",
  53. table: "Preferences",
  54. type: "TEXT",
  55. nullable: true);
  56. migrationBuilder.AddColumn<Guid>(
  57. name: "UserId",
  58. schema: "jellyfin",
  59. table: "Permissions",
  60. type: "TEXT",
  61. nullable: true);
  62. migrationBuilder.Sql("UPDATE Preferences SET UserId = Preference_Preferences_Guid");
  63. migrationBuilder.Sql("UPDATE Permissions SET UserId = Permission_Permissions_Guid");
  64. migrationBuilder.CreateIndex(
  65. name: "IX_Users_Username",
  66. schema: "jellyfin",
  67. table: "Users",
  68. column: "Username",
  69. unique: true);
  70. migrationBuilder.CreateIndex(
  71. name: "IX_Preferences_UserId_Kind",
  72. schema: "jellyfin",
  73. table: "Preferences",
  74. columns: new[] { "UserId", "Kind" },
  75. unique: true,
  76. filter: "[UserId] IS NOT NULL");
  77. migrationBuilder.CreateIndex(
  78. name: "IX_Permissions_UserId_Kind",
  79. schema: "jellyfin",
  80. table: "Permissions",
  81. columns: new[] { "UserId", "Kind" },
  82. unique: true,
  83. filter: "[UserId] IS NOT NULL");
  84. migrationBuilder.AddForeignKey(
  85. name: "FK_ImageInfos_Users_UserId",
  86. schema: "jellyfin",
  87. table: "ImageInfos",
  88. column: "UserId",
  89. principalSchema: "jellyfin",
  90. principalTable: "Users",
  91. principalColumn: "Id",
  92. onDelete: ReferentialAction.Cascade);
  93. migrationBuilder.AddForeignKey(
  94. name: "FK_Permissions_Users_UserId",
  95. schema: "jellyfin",
  96. table: "Permissions",
  97. column: "UserId",
  98. principalSchema: "jellyfin",
  99. principalTable: "Users",
  100. principalColumn: "Id",
  101. onDelete: ReferentialAction.Cascade);
  102. migrationBuilder.AddForeignKey(
  103. name: "FK_Preferences_Users_UserId",
  104. schema: "jellyfin",
  105. table: "Preferences",
  106. column: "UserId",
  107. principalSchema: "jellyfin",
  108. principalTable: "Users",
  109. principalColumn: "Id",
  110. onDelete: ReferentialAction.Cascade);
  111. }
  112. protected override void Down(MigrationBuilder migrationBuilder)
  113. {
  114. migrationBuilder.DropForeignKey(
  115. name: "FK_ImageInfos_Users_UserId",
  116. schema: "jellyfin",
  117. table: "ImageInfos");
  118. migrationBuilder.DropForeignKey(
  119. name: "FK_Permissions_Users_UserId",
  120. schema: "jellyfin",
  121. table: "Permissions");
  122. migrationBuilder.DropForeignKey(
  123. name: "FK_Preferences_Users_UserId",
  124. schema: "jellyfin",
  125. table: "Preferences");
  126. migrationBuilder.DropIndex(
  127. name: "IX_Users_Username",
  128. schema: "jellyfin",
  129. table: "Users");
  130. migrationBuilder.DropIndex(
  131. name: "IX_Preferences_UserId_Kind",
  132. schema: "jellyfin",
  133. table: "Preferences");
  134. migrationBuilder.DropIndex(
  135. name: "IX_Permissions_UserId_Kind",
  136. schema: "jellyfin",
  137. table: "Permissions");
  138. migrationBuilder.DropColumn(
  139. name: "UserId",
  140. schema: "jellyfin",
  141. table: "Preferences");
  142. migrationBuilder.DropColumn(
  143. name: "UserId",
  144. schema: "jellyfin",
  145. table: "Permissions");
  146. migrationBuilder.AlterColumn<string>(
  147. name: "Username",
  148. schema: "jellyfin",
  149. table: "Users",
  150. type: "TEXT",
  151. maxLength: 255,
  152. nullable: false,
  153. oldClrType: typeof(string),
  154. oldType: "TEXT",
  155. oldMaxLength: 255,
  156. oldCollation: "NOCASE");
  157. migrationBuilder.CreateIndex(
  158. name: "IX_Preferences_Preference_Preferences_Guid",
  159. schema: "jellyfin",
  160. table: "Preferences",
  161. column: "Preference_Preferences_Guid");
  162. migrationBuilder.CreateIndex(
  163. name: "IX_Permissions_Permission_Permissions_Guid",
  164. schema: "jellyfin",
  165. table: "Permissions",
  166. column: "Permission_Permissions_Guid");
  167. migrationBuilder.CreateIndex(
  168. name: "IX_DisplayPreferences_UserId",
  169. schema: "jellyfin",
  170. table: "DisplayPreferences",
  171. column: "UserId");
  172. migrationBuilder.CreateIndex(
  173. name: "IX_CustomItemDisplayPreferences_UserId",
  174. schema: "jellyfin",
  175. table: "CustomItemDisplayPreferences",
  176. column: "UserId");
  177. migrationBuilder.AddForeignKey(
  178. name: "FK_ImageInfos_Users_UserId",
  179. schema: "jellyfin",
  180. table: "ImageInfos",
  181. column: "UserId",
  182. principalSchema: "jellyfin",
  183. principalTable: "Users",
  184. principalColumn: "Id",
  185. onDelete: ReferentialAction.Restrict);
  186. migrationBuilder.AddForeignKey(
  187. name: "FK_Permissions_Users_Permission_Permissions_Guid",
  188. schema: "jellyfin",
  189. table: "Permissions",
  190. column: "Permission_Permissions_Guid",
  191. principalSchema: "jellyfin",
  192. principalTable: "Users",
  193. principalColumn: "Id",
  194. onDelete: ReferentialAction.Restrict);
  195. migrationBuilder.AddForeignKey(
  196. name: "FK_Preferences_Users_Preference_Preferences_Guid",
  197. schema: "jellyfin",
  198. table: "Preferences",
  199. column: "Preference_Preferences_Guid",
  200. principalSchema: "jellyfin",
  201. principalTable: "Users",
  202. principalColumn: "Id",
  203. onDelete: ReferentialAction.Restrict);
  204. }
  205. }
  206. }