2020_11_10_075555_improve_table.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. <?php
  2. use Illuminate\Database\Migrations\Migration;
  3. use Illuminate\Database\Schema\Blueprint;
  4. use Illuminate\Support\Facades\Schema;
  5. class ImproveTable extends Migration
  6. {
  7. /**
  8. * Run the migrations.
  9. *
  10. * @return void
  11. */
  12. public function up()
  13. {
  14. Schema::disableForeignKeyConstraints();
  15. Schema::table('coupon_log', function (Blueprint $table) {
  16. $table->unsignedInteger('coupon_id')->default(null)->nullable()->change();
  17. $table->unsignedInteger('goods_id')->default(null)->nullable()->change();
  18. $table->unsignedInteger('order_id')->default(null)->nullable()->change();
  19. $table->foreign('coupon_id')->references('id')->on('coupon')->nullOnDelete();
  20. $table->foreign('goods_id')->references('id')->on('goods')->nullOnDelete();
  21. $table->foreign('order_id')->references('id')->on('order')->nullOnDelete();
  22. });
  23. Schema::table('email_filter', function (Blueprint $table) {
  24. $table->index(['words', 'type']);
  25. });
  26. Schema::table('invite', function (Blueprint $table) {
  27. $table->foreign('inviter_id')->references('id')->on('user')->cascadeOnDelete();
  28. $table->foreign('invitee_id')->references('id')->on('user')->nullOnDelete();
  29. });
  30. Schema::table('node_auth', function (Blueprint $table) {
  31. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  32. });
  33. Schema::table('node_daily_data_flow', function (Blueprint $table) {
  34. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  35. });
  36. Schema::table('node_hourly_data_flow', function (Blueprint $table) {
  37. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  38. });
  39. Schema::table('node_label', function (Blueprint $table) {
  40. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  41. $table->foreign('label_id')->references('id')->on('label')->cascadeOnDelete();
  42. });
  43. Schema::table('node_ping', function (Blueprint $table) {
  44. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  45. });
  46. Schema::table('node_rule', function (Blueprint $table) {
  47. $table->index(['node_id', 'rule_id']);
  48. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  49. $table->foreign('rule_id')->references('id')->on('rule')->cascadeOnDelete();
  50. });
  51. Schema::table('order', function (Blueprint $table) {
  52. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  53. });
  54. Schema::table('payment', function (Blueprint $table) {
  55. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  56. $table->index(['user_id', 'order_id']);
  57. });
  58. Schema::table('referral_apply', function (Blueprint $table) {
  59. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  60. });
  61. Schema::table('referral_log', function (Blueprint $table) {
  62. $table->unsignedInteger('invitee_id')->default(null)->nullable()->change();
  63. $table->unsignedInteger('order_id')->default(null)->nullable()->change();
  64. $table->foreign('inviter_id')->references('id')->on('user')->cascadeOnDelete();
  65. $table->foreign('invitee_id')->references('id')->on('user')->nullOnDelete();
  66. $table->foreign('order_id')->references('id')->on('order')->nullOnDelete();
  67. $table->index(['inviter_id', 'invitee_id']);
  68. });
  69. Schema::table('rule_group_node', function (Blueprint $table) {
  70. $table->foreign('rule_group_id')->references('id')->on('rule_group')->cascadeOnDelete();
  71. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  72. });
  73. Schema::table('rule_log', function (Blueprint $table) {
  74. $table->unsignedInteger('node_id')->default(null)->nullable()->change();
  75. $table->unsignedInteger('rule_id')->nullable()->change();
  76. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  77. $table->foreign('node_id')->references('id')->on('ss_node')->nullOnDelete();
  78. $table->foreign('rule_id')->references('id')->on('rule')->nullOnDelete();
  79. });
  80. Schema::table('ss_config', function (Blueprint $table) {
  81. $table->index('type');
  82. });
  83. Schema::table('ss_node', function (Blueprint $table) {
  84. $table->index('type');
  85. });
  86. Schema::table('ss_node_info', function (Blueprint $table) {
  87. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  88. });
  89. Schema::table('ss_node_ip', function (Blueprint $table) {
  90. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  91. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  92. });
  93. Schema::table('ss_node_online_log', function (Blueprint $table) {
  94. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  95. });
  96. Schema::table('ticket', function (Blueprint $table) {
  97. $table->unsignedInteger('admin_id')->default(null)->nullable()->comment('管理员ID')->change();
  98. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  99. $table->foreign('admin_id')->references('id')->on('user')->nullOnDelete();
  100. });
  101. Schema::table('ticket_reply', function (Blueprint $table) {
  102. $table->unsignedInteger('admin_id')->default(null)->nullable()->comment('管理员ID')->change();
  103. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  104. $table->foreign('admin_id')->references('id')->on('user')->nullOnDelete();
  105. $table->foreign('ticket_id')->references('id')->on('ticket')->cascadeOnDelete();
  106. });
  107. Schema::table('user_baned_log', function (Blueprint $table) {
  108. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  109. });
  110. Schema::table('user_credit_log', function (Blueprint $table) {
  111. $table->unsignedInteger('order_id')->default(null)->nullable()->comment('订单ID')->change();
  112. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  113. $table->foreign('order_id')->references('id')->on('order')->nullOnDelete();
  114. });
  115. Schema::table('user_daily_data_flow', function (Blueprint $table) {
  116. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  117. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  118. });
  119. Schema::table('user_data_modify_log', function (Blueprint $table) {
  120. $table->unsignedInteger('order_id')->default(null)->nullable()->comment('发生的订单ID')->change();
  121. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  122. $table->foreign('order_id')->references('id')->on('order')->nullOnDelete();
  123. });
  124. Schema::table('user_hourly_data_flow', function (Blueprint $table) {
  125. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  126. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  127. });
  128. Schema::table('user_login_log', function (Blueprint $table) {
  129. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  130. });
  131. Schema::table('user_subscribe', function (Blueprint $table) {
  132. $table->unique('code');
  133. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  134. });
  135. Schema::table('user_subscribe_log', function (Blueprint $table) {
  136. $table->foreign('user_subscribe_id')->references('id')->on('user_subscribe')->cascadeOnDelete();
  137. });
  138. Schema::table('user_traffic_log', function (Blueprint $table) {
  139. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  140. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  141. });
  142. Schema::table('verify', function (Blueprint $table) {
  143. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  144. });
  145. Schema::enableForeignKeyConstraints();
  146. }
  147. /**
  148. * Reverse the migrations.
  149. *
  150. * @return void
  151. */
  152. public function down()
  153. {
  154. Schema::disableForeignKeyConstraints();
  155. Schema::table('coupon_log', function (Blueprint $table) {
  156. $table->dropForeign(['coupon_id']);
  157. $table->dropForeign(['goods_id']);
  158. $table->dropForeign(['order_id']);
  159. $table->dropIndex('coupon_log_coupon_id_foreign');
  160. $table->dropIndex('coupon_log_goods_id_foreign');
  161. $table->dropIndex('coupon_log_order_id_foreign');
  162. });
  163. Schema::table('coupon_log', function (Blueprint $table) {
  164. $table->unsignedInteger('coupon_id')->default(0)->nullable(false)->change();
  165. $table->unsignedInteger('goods_id')->default(0)->nullable(false)->change();
  166. $table->unsignedInteger('order_id')->default(0)->nullable(false)->change();
  167. });
  168. Schema::table('email_filter', function (Blueprint $table) {
  169. $table->dropIndex(['words', 'type']);
  170. });
  171. Schema::table('invite', function (Blueprint $table) {
  172. $table->dropForeign(['inviter_id']);
  173. $table->dropForeign(['invitee_id']);
  174. $table->dropIndex('invite_inviter_id_foreign');
  175. $table->dropIndex('invite_invitee_id_foreign');
  176. });
  177. Schema::table('node_auth', function (Blueprint $table) {
  178. $table->dropForeign(['node_id']);
  179. $table->dropIndex('node_auth_node_id_foreign');
  180. });
  181. Schema::table('node_daily_data_flow', function (Blueprint $table) {
  182. $table->dropForeign(['node_id']);
  183. });
  184. Schema::table('node_hourly_data_flow', function (Blueprint $table) {
  185. $table->dropForeign(['node_id']);
  186. });
  187. Schema::table('node_label', function (Blueprint $table) {
  188. $table->dropForeign(['node_id']);
  189. $table->dropForeign(['label_id']);
  190. $table->dropIndex('node_label_label_id_foreign');
  191. });
  192. Schema::table('node_ping', function (Blueprint $table) {
  193. $table->dropForeign(['node_id']);
  194. });
  195. Schema::table('node_rule', function (Blueprint $table) {
  196. $table->dropForeign(['node_id']);
  197. $table->dropForeign(['rule_id']);
  198. $table->dropIndex(['node_id', 'rule_id']);
  199. $table->dropIndex('node_rule_rule_id_foreign');
  200. });
  201. Schema::table('order', function (Blueprint $table) {
  202. $table->dropForeign(['user_id']);
  203. });
  204. Schema::table('payment', function (Blueprint $table) {
  205. $table->dropForeign(['user_id']);
  206. $table->dropIndex(['user_id', 'order_id']);
  207. });
  208. Schema::table('referral_apply', function (Blueprint $table) {
  209. $table->dropForeign(['user_id']);
  210. $table->dropIndex('referral_apply_user_id_foreign');
  211. });
  212. Schema::table('referral_log', function (Blueprint $table) {
  213. $table->dropForeign(['inviter_id']);
  214. $table->dropForeign(['invitee_id']);
  215. $table->dropForeign(['order_id']);
  216. $table->dropIndex(['inviter_id', 'invitee_id']);
  217. $table->dropIndex('referral_log_invitee_id_foreign');
  218. $table->dropIndex('referral_log_order_id_foreign');
  219. });
  220. Schema::table('referral_log', function (Blueprint $table) {
  221. $table->unsignedInteger('invitee_id')->nullable(false)->change();
  222. $table->unsignedInteger('order_id')->nullable(false)->change();
  223. });
  224. Schema::table('rule_group_node', function (Blueprint $table) {
  225. $table->dropForeign(['rule_group_id']);
  226. $table->dropForeign(['node_id']);
  227. $table->dropIndex('rule_group_node_rule_group_id_foreign');
  228. $table->dropIndex('rule_group_node_node_id_foreign');
  229. });
  230. Schema::table('rule_log', function (Blueprint $table) {
  231. $table->dropForeign(['user_id']);
  232. $table->dropForeign(['node_id']);
  233. $table->dropForeign(['rule_id']);
  234. $table->dropIndex('rule_log_node_id_foreign');
  235. $table->dropIndex('rule_log_rule_id_foreign');
  236. });
  237. Schema::table('rule_log', function (Blueprint $table) {
  238. $table->unsignedInteger('node_id')->default(0)->nullable(false)->change();
  239. $table->unsignedInteger('rule_id')->default(0)->nullable(false)->change();
  240. });
  241. Schema::table('ss_config', function (Blueprint $table) {
  242. $table->dropIndex(['type']);
  243. });
  244. Schema::table('ss_node', function (Blueprint $table) {
  245. $table->dropIndex(['type']);
  246. });
  247. Schema::table('ss_node_info', function (Blueprint $table) {
  248. $table->dropForeign(['node_id']);
  249. });
  250. Schema::table('ss_node_ip', function (Blueprint $table) {
  251. $table->dropForeign(['node_id']);
  252. $table->dropForeign(['user_id']);
  253. });
  254. Schema::table('ss_node_online_log', function (Blueprint $table) {
  255. $table->dropForeign(['node_id']);
  256. });
  257. Schema::table('ticket', function (Blueprint $table) {
  258. $table->dropForeign(['user_id']);
  259. $table->dropForeign(['admin_id']);
  260. $table->dropIndex('ticket_user_id_foreign');
  261. $table->dropIndex('ticket_admin_id_foreign');
  262. });
  263. Schema::table('ticket', function (Blueprint $table) {
  264. $table->unsignedInteger('admin_id')->default(0)->nullable(false)->change();
  265. });
  266. Schema::table('ticket_reply', function (Blueprint $table) {
  267. $table->dropForeign(['user_id']);
  268. $table->dropForeign(['admin_id']);
  269. $table->dropForeign(['ticket_id']);
  270. $table->dropIndex('ticket_reply_user_id_foreign');
  271. $table->dropIndex('ticket_reply_admin_id_foreign');
  272. $table->dropIndex('ticket_reply_ticket_id_foreign');
  273. });
  274. Schema::table('ticket_reply', function (Blueprint $table) {
  275. $table->unsignedInteger('admin_id')->default(0)->nullable(false)->change();
  276. });
  277. Schema::table('user_baned_log', function (Blueprint $table) {
  278. $table->dropForeign(['user_id']);
  279. $table->dropIndex('user_baned_log_user_id_foreign');
  280. });
  281. Schema::table('user_credit_log', function (Blueprint $table) {
  282. $table->dropForeign(['user_id']);
  283. $table->dropForeign(['order_id']);
  284. $table->dropIndex('user_credit_log_user_id_foreign');
  285. $table->dropIndex('user_credit_log_order_id_foreign');
  286. });
  287. Schema::table('user_credit_log', function (Blueprint $table) {
  288. $table->unsignedInteger('order_id')->default(0)->nullable(false)->change();
  289. });
  290. Schema::table('user_daily_data_flow', function (Blueprint $table) {
  291. $table->dropForeign(['user_id']);
  292. $table->dropForeign(['node_id']);
  293. $table->dropIndex('user_daily_data_flow_node_id_foreign');
  294. });
  295. Schema::table('user_data_modify_log', function (Blueprint $table) {
  296. $table->dropForeign(['user_id']);
  297. $table->dropForeign(['order_id']);
  298. $table->dropIndex('user_data_modify_log_user_id_foreign');
  299. $table->dropIndex('user_data_modify_log_order_id_foreign');
  300. });
  301. Schema::table('user_data_modify_log', function (Blueprint $table) {
  302. $table->unsignedInteger('order_id')->default(0)->nullable(false)->change();
  303. });
  304. Schema::table('user_hourly_data_flow', function (Blueprint $table) {
  305. $table->dropForeign(['user_id']);
  306. $table->dropForeign(['node_id']);
  307. $table->dropIndex('user_hourly_data_flow_node_id_foreign');
  308. });
  309. Schema::table('user_login_log', function (Blueprint $table) {
  310. $table->dropForeign(['user_id']);
  311. $table->dropIndex('user_login_log_user_id_foreign');
  312. });
  313. Schema::table('user_subscribe', function (Blueprint $table) {
  314. $table->dropUnique(['code']);
  315. $table->dropForeign(['user_id']);
  316. });
  317. Schema::table('user_subscribe_log', function (Blueprint $table) {
  318. $table->dropForeign(['user_subscribe_id']);
  319. });
  320. Schema::table('user_traffic_log', function (Blueprint $table) {
  321. $table->dropForeign(['user_id']);
  322. $table->dropForeign(['node_id']);
  323. $table->dropIndex('user_traffic_log_node_id_foreign');
  324. });
  325. Schema::table('verify', function (Blueprint $table) {
  326. $table->dropForeign(['user_id']);
  327. $table->dropIndex('verify_user_id_foreign');
  328. });
  329. }
  330. }