您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

20200630140752_Recreate Database.cs 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. using System;
  2. using Microsoft.EntityFrameworkCore.Metadata;
  3. using Microsoft.EntityFrameworkCore.Migrations;
  4. namespace ProRestaurant.Migrations
  5. {
  6. public partial class RecreateDatabase : Migration
  7. {
  8. protected override void Up(MigrationBuilder migrationBuilder)
  9. {
  10. migrationBuilder.CreateTable(
  11. name: "Locations",
  12. columns: table => new
  13. {
  14. Id = table.Column<int>(nullable: false)
  15. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  16. ImageStore = table.Column<string>(nullable: true),
  17. CategoryStore = table.Column<string>(nullable: true)
  18. },
  19. constraints: table =>
  20. {
  21. table.PrimaryKey("PK_Locations", x => x.Id);
  22. });
  23. migrationBuilder.CreateTable(
  24. name: "RestaurantCategories",
  25. columns: table => new
  26. {
  27. Id = table.Column<int>(nullable: false)
  28. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  29. Description = table.Column<string>(nullable: true),
  30. Image = table.Column<string>(nullable: true)
  31. },
  32. constraints: table =>
  33. {
  34. table.PrimaryKey("PK_RestaurantCategories", x => x.Id);
  35. });
  36. migrationBuilder.CreateTable(
  37. name: "Restaurants",
  38. columns: table => new
  39. {
  40. Id = table.Column<int>(nullable: false)
  41. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  42. Created = table.Column<DateTime>(nullable: false),
  43. Modified = table.Column<DateTime>(nullable: false),
  44. ModifiedBy = table.Column<string>(nullable: true),
  45. IsDeleted = table.Column<bool>(nullable: false),
  46. Name = table.Column<string>(nullable: true),
  47. Logo = table.Column<string>(nullable: true),
  48. DeliveryFee = table.Column<decimal>(nullable: false),
  49. DeliveryRadius = table.Column<decimal>(nullable: false),
  50. MethodsOfPayment = table.Column<string>(nullable: true),
  51. ShoppingCentre = table.Column<string>(nullable: true),
  52. ShopNumber = table.Column<string>(nullable: true),
  53. GoogleMapUrl = table.Column<string>(nullable: true),
  54. Latitude = table.Column<decimal>(nullable: false),
  55. Longitude = table.Column<decimal>(nullable: false),
  56. StreetNumber = table.Column<string>(nullable: true),
  57. StreetName = table.Column<string>(nullable: true),
  58. Suburb = table.Column<string>(nullable: true),
  59. City = table.Column<string>(nullable: true),
  60. Provice = table.Column<string>(nullable: true),
  61. Country = table.Column<string>(nullable: true),
  62. PostalCode = table.Column<string>(nullable: true),
  63. DeliveryTime = table.Column<string>(nullable: true),
  64. Categories = table.Column<string>(nullable: true)
  65. },
  66. constraints: table =>
  67. {
  68. table.PrimaryKey("PK_Restaurants", x => x.Id);
  69. });
  70. migrationBuilder.CreateTable(
  71. name: "Users",
  72. columns: table => new
  73. {
  74. Id = table.Column<int>(nullable: false)
  75. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  76. Created = table.Column<DateTime>(nullable: false),
  77. Modified = table.Column<DateTime>(nullable: false),
  78. ModifiedBy = table.Column<string>(nullable: true),
  79. IsDeleted = table.Column<bool>(nullable: false),
  80. EmailAddress = table.Column<string>(nullable: true),
  81. Password = table.Column<string>(nullable: true),
  82. FirstName = table.Column<string>(nullable: true),
  83. Surname = table.Column<string>(nullable: true),
  84. Cellphone = table.Column<string>(nullable: true),
  85. SystemRole = table.Column<int>(nullable: false)
  86. },
  87. constraints: table =>
  88. {
  89. table.PrimaryKey("PK_Users", x => x.Id);
  90. });
  91. migrationBuilder.CreateTable(
  92. name: "MenuCategories",
  93. columns: table => new
  94. {
  95. Id = table.Column<int>(nullable: false)
  96. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  97. Created = table.Column<DateTime>(nullable: false),
  98. Modified = table.Column<DateTime>(nullable: false),
  99. ModifiedBy = table.Column<string>(nullable: true),
  100. IsDeleted = table.Column<bool>(nullable: false),
  101. RestaurantId = table.Column<int>(nullable: false),
  102. Description = table.Column<string>(nullable: true)
  103. },
  104. constraints: table =>
  105. {
  106. table.PrimaryKey("PK_MenuCategories", x => x.Id);
  107. table.ForeignKey(
  108. name: "FK_MenuCategories_Restaurants_RestaurantId",
  109. column: x => x.RestaurantId,
  110. principalTable: "Restaurants",
  111. principalColumn: "Id",
  112. onDelete: ReferentialAction.Cascade);
  113. });
  114. migrationBuilder.CreateTable(
  115. name: "MenuItems",
  116. columns: table => new
  117. {
  118. Id = table.Column<int>(nullable: false)
  119. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  120. Created = table.Column<DateTime>(nullable: false),
  121. Modified = table.Column<DateTime>(nullable: false),
  122. ModifiedBy = table.Column<string>(nullable: true),
  123. IsDeleted = table.Column<bool>(nullable: false),
  124. RestaurantId = table.Column<int>(nullable: false),
  125. CategoryId = table.Column<int>(nullable: false),
  126. Image = table.Column<string>(nullable: true),
  127. Name = table.Column<string>(nullable: true),
  128. Description = table.Column<string>(nullable: true),
  129. Price = table.Column<decimal>(nullable: false)
  130. },
  131. constraints: table =>
  132. {
  133. table.PrimaryKey("PK_MenuItems", x => x.Id);
  134. table.ForeignKey(
  135. name: "FK_MenuItems_Restaurants_RestaurantId",
  136. column: x => x.RestaurantId,
  137. principalTable: "Restaurants",
  138. principalColumn: "Id",
  139. onDelete: ReferentialAction.Cascade);
  140. });
  141. migrationBuilder.CreateTable(
  142. name: "TradingHours",
  143. columns: table => new
  144. {
  145. Id = table.Column<int>(nullable: false)
  146. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  147. Created = table.Column<DateTime>(nullable: false),
  148. Modified = table.Column<DateTime>(nullable: false),
  149. ModifiedBy = table.Column<string>(nullable: true),
  150. IsDeleted = table.Column<bool>(nullable: false),
  151. RestaurantId = table.Column<int>(nullable: false),
  152. Description = table.Column<string>(nullable: true),
  153. OpeningTime = table.Column<DateTime>(nullable: false),
  154. ClosingTime = table.Column<DateTime>(nullable: false),
  155. Closed = table.Column<bool>(nullable: false),
  156. Opened24H = table.Column<bool>(nullable: false)
  157. },
  158. constraints: table =>
  159. {
  160. table.PrimaryKey("PK_TradingHours", x => x.Id);
  161. table.ForeignKey(
  162. name: "FK_TradingHours_Restaurants_RestaurantId",
  163. column: x => x.RestaurantId,
  164. principalTable: "Restaurants",
  165. principalColumn: "Id",
  166. onDelete: ReferentialAction.Cascade);
  167. });
  168. migrationBuilder.CreateTable(
  169. name: "DriverDetails",
  170. columns: table => new
  171. {
  172. Id = table.Column<int>(nullable: false)
  173. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  174. Created = table.Column<DateTime>(nullable: false),
  175. Modified = table.Column<DateTime>(nullable: false),
  176. ModifiedBy = table.Column<string>(nullable: true),
  177. IsDeleted = table.Column<bool>(nullable: false),
  178. UserId = table.Column<int>(nullable: false),
  179. Photo = table.Column<string>(nullable: true),
  180. RegistrationNumber = table.Column<string>(nullable: true)
  181. },
  182. constraints: table =>
  183. {
  184. table.PrimaryKey("PK_DriverDetails", x => x.Id);
  185. table.ForeignKey(
  186. name: "FK_DriverDetails_Users_UserId",
  187. column: x => x.UserId,
  188. principalTable: "Users",
  189. principalColumn: "Id",
  190. onDelete: ReferentialAction.Cascade);
  191. });
  192. migrationBuilder.CreateTable(
  193. name: "RestaurantUsers",
  194. columns: table => new
  195. {
  196. Id = table.Column<int>(nullable: false)
  197. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  198. Created = table.Column<DateTime>(nullable: false),
  199. Modified = table.Column<DateTime>(nullable: false),
  200. ModifiedBy = table.Column<string>(nullable: true),
  201. IsDeleted = table.Column<bool>(nullable: false),
  202. UserId = table.Column<int>(nullable: false),
  203. RestaurantId = table.Column<int>(nullable: false)
  204. },
  205. constraints: table =>
  206. {
  207. table.PrimaryKey("PK_RestaurantUsers", x => x.Id);
  208. table.ForeignKey(
  209. name: "FK_RestaurantUsers_Restaurants_RestaurantId",
  210. column: x => x.RestaurantId,
  211. principalTable: "Restaurants",
  212. principalColumn: "Id",
  213. onDelete: ReferentialAction.Cascade);
  214. table.ForeignKey(
  215. name: "FK_RestaurantUsers_Users_UserId",
  216. column: x => x.UserId,
  217. principalTable: "Users",
  218. principalColumn: "Id",
  219. onDelete: ReferentialAction.Cascade);
  220. });
  221. migrationBuilder.CreateTable(
  222. name: "UserAddresses",
  223. columns: table => new
  224. {
  225. Id = table.Column<int>(nullable: false)
  226. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  227. Created = table.Column<DateTime>(nullable: false),
  228. Modified = table.Column<DateTime>(nullable: false),
  229. ModifiedBy = table.Column<string>(nullable: true),
  230. IsDeleted = table.Column<bool>(nullable: false),
  231. UserId = table.Column<int>(nullable: false),
  232. IsDefault = table.Column<bool>(nullable: false),
  233. IsComplex = table.Column<bool>(nullable: false),
  234. GoogleMapUrl = table.Column<string>(nullable: true),
  235. Latitude = table.Column<decimal>(nullable: false),
  236. Longitude = table.Column<decimal>(nullable: false),
  237. UnitNumber = table.Column<string>(nullable: true),
  238. ComplexName = table.Column<string>(nullable: true),
  239. StreetNumber = table.Column<string>(nullable: true),
  240. StreetName = table.Column<string>(nullable: true),
  241. Suburb = table.Column<string>(nullable: true),
  242. City = table.Column<string>(nullable: true),
  243. Province = table.Column<string>(nullable: true),
  244. Country = table.Column<string>(nullable: true),
  245. PostalCode = table.Column<string>(nullable: true)
  246. },
  247. constraints: table =>
  248. {
  249. table.PrimaryKey("PK_UserAddresses", x => x.Id);
  250. table.ForeignKey(
  251. name: "FK_UserAddresses_Users_UserId",
  252. column: x => x.UserId,
  253. principalTable: "Users",
  254. principalColumn: "Id",
  255. onDelete: ReferentialAction.Cascade);
  256. });
  257. migrationBuilder.CreateTable(
  258. name: "MenuOptions",
  259. columns: table => new
  260. {
  261. Id = table.Column<int>(nullable: false)
  262. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  263. Created = table.Column<DateTime>(nullable: false),
  264. Modified = table.Column<DateTime>(nullable: false),
  265. ModifiedBy = table.Column<string>(nullable: true),
  266. IsDeleted = table.Column<bool>(nullable: false),
  267. CategoryId = table.Column<int>(nullable: false),
  268. Description = table.Column<string>(nullable: true),
  269. OptionType = table.Column<int>(nullable: false),
  270. OptionLimit = table.Column<int>(nullable: false),
  271. IsBasePrice = table.Column<bool>(nullable: false),
  272. Rank = table.Column<int>(nullable: false),
  273. MenuItemId = table.Column<int>(nullable: false)
  274. },
  275. constraints: table =>
  276. {
  277. table.PrimaryKey("PK_MenuOptions", x => x.Id);
  278. table.ForeignKey(
  279. name: "FK_MenuOptions_MenuCategories_CategoryId",
  280. column: x => x.CategoryId,
  281. principalTable: "MenuCategories",
  282. principalColumn: "Id",
  283. onDelete: ReferentialAction.Cascade);
  284. });
  285. migrationBuilder.CreateTable(
  286. name: "MenuOptionItems",
  287. columns: table => new
  288. {
  289. Id = table.Column<int>(nullable: false)
  290. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  291. Created = table.Column<DateTime>(nullable: false),
  292. Modified = table.Column<DateTime>(nullable: false),
  293. ModifiedBy = table.Column<string>(nullable: true),
  294. IsDeleted = table.Column<bool>(nullable: false),
  295. MenuOptionId = table.Column<int>(nullable: true),
  296. Description = table.Column<string>(nullable: true),
  297. Price = table.Column<decimal>(nullable: false),
  298. Rank = table.Column<int>(nullable: false)
  299. },
  300. constraints: table =>
  301. {
  302. table.PrimaryKey("PK_MenuOptionItems", x => x.Id);
  303. table.ForeignKey(
  304. name: "FK_MenuOptionItems_MenuOptions_MenuOptionId",
  305. column: x => x.MenuOptionId,
  306. principalTable: "MenuOptions",
  307. principalColumn: "Id",
  308. onDelete: ReferentialAction.Restrict);
  309. });
  310. migrationBuilder.CreateIndex(
  311. name: "IX_DriverDetails_UserId",
  312. table: "DriverDetails",
  313. column: "UserId",
  314. unique: true);
  315. migrationBuilder.CreateIndex(
  316. name: "IX_MenuCategories_RestaurantId",
  317. table: "MenuCategories",
  318. column: "RestaurantId");
  319. migrationBuilder.CreateIndex(
  320. name: "IX_MenuItems_RestaurantId",
  321. table: "MenuItems",
  322. column: "RestaurantId");
  323. migrationBuilder.CreateIndex(
  324. name: "IX_MenuOptionItems_MenuOptionId",
  325. table: "MenuOptionItems",
  326. column: "MenuOptionId");
  327. migrationBuilder.CreateIndex(
  328. name: "IX_MenuOptions_CategoryId",
  329. table: "MenuOptions",
  330. column: "CategoryId");
  331. migrationBuilder.CreateIndex(
  332. name: "IX_RestaurantUsers_RestaurantId",
  333. table: "RestaurantUsers",
  334. column: "RestaurantId");
  335. migrationBuilder.CreateIndex(
  336. name: "IX_RestaurantUsers_UserId",
  337. table: "RestaurantUsers",
  338. column: "UserId");
  339. migrationBuilder.CreateIndex(
  340. name: "IX_TradingHours_RestaurantId",
  341. table: "TradingHours",
  342. column: "RestaurantId");
  343. migrationBuilder.CreateIndex(
  344. name: "IX_UserAddresses_UserId",
  345. table: "UserAddresses",
  346. column: "UserId");
  347. }
  348. protected override void Down(MigrationBuilder migrationBuilder)
  349. {
  350. migrationBuilder.DropTable(
  351. name: "DriverDetails");
  352. migrationBuilder.DropTable(
  353. name: "Locations");
  354. migrationBuilder.DropTable(
  355. name: "MenuItems");
  356. migrationBuilder.DropTable(
  357. name: "MenuOptionItems");
  358. migrationBuilder.DropTable(
  359. name: "RestaurantCategories");
  360. migrationBuilder.DropTable(
  361. name: "RestaurantUsers");
  362. migrationBuilder.DropTable(
  363. name: "TradingHours");
  364. migrationBuilder.DropTable(
  365. name: "UserAddresses");
  366. migrationBuilder.DropTable(
  367. name: "MenuOptions");
  368. migrationBuilder.DropTable(
  369. name: "Users");
  370. migrationBuilder.DropTable(
  371. name: "MenuCategories");
  372. migrationBuilder.DropTable(
  373. name: "Restaurants");
  374. }
  375. }
  376. }