2020_11_10_075555_improve_table.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  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', function (Blueprint $table) {
  108. $table->foreign('inviter_id')->references('id')->on('user')->nullOnDelete();
  109. });
  110. Schema::table('user_baned_log', function (Blueprint $table) {
  111. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  112. });
  113. Schema::table('user_credit_log', function (Blueprint $table) {
  114. $table->unsignedInteger('order_id')->default(null)->nullable()->comment('订单ID')->change();
  115. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  116. $table->foreign('order_id')->references('id')->on('order')->nullOnDelete();
  117. });
  118. Schema::table('user_daily_data_flow', function (Blueprint $table) {
  119. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  120. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  121. });
  122. Schema::table('user_data_modify_log', function (Blueprint $table) {
  123. $table->unsignedInteger('order_id')->default(null)->nullable()->comment('发生的订单ID')->change();
  124. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  125. $table->foreign('order_id')->references('id')->on('order')->nullOnDelete();
  126. });
  127. Schema::table('user_hourly_data_flow', function (Blueprint $table) {
  128. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  129. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  130. });
  131. Schema::table('user_login_log', function (Blueprint $table) {
  132. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  133. });
  134. Schema::table('user_subscribe', function (Blueprint $table) {
  135. $table->unique('code');
  136. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  137. });
  138. Schema::table('user_subscribe_log', function (Blueprint $table) {
  139. $table->foreign('user_subscribe_id')->references('id')->on('user_subscribe')->cascadeOnDelete();
  140. });
  141. Schema::table('user_traffic_log', function (Blueprint $table) {
  142. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  143. $table->foreign('node_id')->references('id')->on('ss_node')->cascadeOnDelete();
  144. });
  145. Schema::table('verify', function (Blueprint $table) {
  146. $table->foreign('user_id')->references('id')->on('user')->cascadeOnDelete();
  147. });
  148. Schema::enableForeignKeyConstraints();
  149. }
  150. /**
  151. * Reverse the migrations.
  152. *
  153. * @return void
  154. */
  155. public function down()
  156. {
  157. Schema::disableForeignKeyConstraints();
  158. Schema::table('coupon_log', function (Blueprint $table) {
  159. $table->dropForeign(['coupon_id']);
  160. $table->dropForeign(['goods_id']);
  161. $table->dropForeign(['order_id']);
  162. $table->dropIndex('coupon_log_coupon_id_foreign');
  163. $table->dropIndex('coupon_log_goods_id_foreign');
  164. $table->dropIndex('coupon_log_order_id_foreign');
  165. });
  166. Schema::table('coupon_log', function (Blueprint $table) {
  167. $table->unsignedInteger('coupon_id')->default(0)->nullable(false)->change();
  168. $table->unsignedInteger('goods_id')->default(0)->nullable(false)->change();
  169. $table->unsignedInteger('order_id')->default(0)->nullable(false)->change();
  170. });
  171. Schema::table('email_filter', function (Blueprint $table) {
  172. $table->dropIndex(['words', 'type']);
  173. });
  174. Schema::table('invite', function (Blueprint $table) {
  175. $table->dropForeign(['inviter_id']);
  176. $table->dropForeign(['invitee_id']);
  177. $table->dropIndex('invite_inviter_id_foreign');
  178. $table->dropIndex('invite_invitee_id_foreign');
  179. });
  180. Schema::table('node_auth', function (Blueprint $table) {
  181. $table->dropForeign(['node_id']);
  182. $table->dropIndex('node_auth_node_id_foreign');
  183. });
  184. Schema::table('node_daily_data_flow', function (Blueprint $table) {
  185. $table->dropForeign(['node_id']);
  186. });
  187. Schema::table('node_hourly_data_flow', function (Blueprint $table) {
  188. $table->dropForeign(['node_id']);
  189. });
  190. Schema::table('node_label', function (Blueprint $table) {
  191. $table->dropForeign(['node_id']);
  192. $table->dropForeign(['label_id']);
  193. $table->dropIndex('node_label_label_id_foreign');
  194. });
  195. Schema::table('node_ping', function (Blueprint $table) {
  196. $table->dropForeign(['node_id']);
  197. });
  198. Schema::table('node_rule', function (Blueprint $table) {
  199. $table->dropForeign(['node_id']);
  200. $table->dropForeign(['rule_id']);
  201. $table->dropIndex(['node_id', 'rule_id']);
  202. $table->dropIndex('node_rule_rule_id_foreign');
  203. });
  204. Schema::table('order', function (Blueprint $table) {
  205. $table->dropForeign(['user_id']);
  206. });
  207. Schema::table('payment', function (Blueprint $table) {
  208. $table->dropForeign(['user_id']);
  209. $table->dropIndex(['user_id', 'order_id']);
  210. });
  211. Schema::table('referral_apply', function (Blueprint $table) {
  212. $table->dropForeign(['user_id']);
  213. $table->dropIndex('referral_apply_user_id_foreign');
  214. });
  215. Schema::table('referral_log', function (Blueprint $table) {
  216. $table->dropForeign(['inviter_id']);
  217. $table->dropForeign(['invitee_id']);
  218. $table->dropForeign(['order_id']);
  219. $table->dropIndex(['inviter_id', 'invitee_id']);
  220. $table->dropIndex('referral_log_invitee_id_foreign');
  221. $table->dropIndex('referral_log_order_id_foreign');
  222. });
  223. Schema::table('referral_log', function (Blueprint $table) {
  224. $table->unsignedInteger('invitee_id')->nullable(false)->change();
  225. $table->unsignedInteger('order_id')->nullable(false)->change();
  226. });
  227. Schema::table('rule_group_node', function (Blueprint $table) {
  228. $table->dropForeign(['rule_group_id']);
  229. $table->dropForeign(['node_id']);
  230. $table->dropIndex('rule_group_node_rule_group_id_foreign');
  231. $table->dropIndex('rule_group_node_node_id_foreign');
  232. });
  233. Schema::table('rule_log', function (Blueprint $table) {
  234. $table->dropForeign(['user_id']);
  235. $table->dropForeign(['node_id']);
  236. $table->dropForeign(['rule_id']);
  237. $table->dropIndex('rule_log_node_id_foreign');
  238. $table->dropIndex('rule_log_rule_id_foreign');
  239. });
  240. Schema::table('rule_log', function (Blueprint $table) {
  241. $table->unsignedInteger('node_id')->default(0)->nullable(false)->change();
  242. $table->unsignedInteger('rule_id')->default(0)->nullable(false)->change();
  243. });
  244. Schema::table('ss_config', function (Blueprint $table) {
  245. $table->dropIndex(['type']);
  246. });
  247. Schema::table('ss_node', function (Blueprint $table) {
  248. $table->dropIndex(['type']);
  249. });
  250. Schema::table('ss_node_info', function (Blueprint $table) {
  251. $table->dropForeign(['node_id']);
  252. });
  253. Schema::table('ss_node_ip', function (Blueprint $table) {
  254. $table->dropForeign(['node_id']);
  255. $table->dropForeign(['user_id']);
  256. });
  257. Schema::table('ss_node_online_log', function (Blueprint $table) {
  258. $table->dropForeign(['node_id']);
  259. });
  260. Schema::table('ticket', function (Blueprint $table) {
  261. $table->dropForeign(['user_id']);
  262. $table->dropForeign(['admin_id']);
  263. $table->dropIndex('ticket_user_id_foreign');
  264. $table->dropIndex('ticket_admin_id_foreign');
  265. });
  266. Schema::table('ticket', function (Blueprint $table) {
  267. $table->unsignedInteger('admin_id')->default(0)->nullable(false)->change();
  268. });
  269. Schema::table('ticket_reply', function (Blueprint $table) {
  270. $table->dropForeign(['user_id']);
  271. $table->dropForeign(['admin_id']);
  272. $table->dropForeign(['ticket_id']);
  273. $table->dropIndex('ticket_reply_user_id_foreign');
  274. $table->dropIndex('ticket_reply_admin_id_foreign');
  275. $table->dropIndex('ticket_reply_ticket_id_foreign');
  276. });
  277. Schema::table('ticket_reply', function (Blueprint $table) {
  278. $table->unsignedInteger('admin_id')->default(0)->nullable(false)->change();
  279. });
  280. Schema::table('user', function (Blueprint $table) {
  281. $table->dropForeign(['inviter_id']);
  282. $table->dropIndex('user_inviter_id_foreign');
  283. });
  284. Schema::table('user_baned_log', function (Blueprint $table) {
  285. $table->dropForeign(['user_id']);
  286. $table->dropIndex('user_baned_log_user_id_foreign');
  287. });
  288. Schema::table('user_credit_log', function (Blueprint $table) {
  289. $table->dropForeign(['user_id']);
  290. $table->dropForeign(['order_id']);
  291. $table->dropIndex('user_credit_log_user_id_foreign');
  292. $table->dropIndex('user_credit_log_order_id_foreign');
  293. });
  294. Schema::table('user_credit_log', function (Blueprint $table) {
  295. $table->unsignedInteger('order_id')->default(0)->nullable(false)->change();
  296. });
  297. Schema::table('user_daily_data_flow', function (Blueprint $table) {
  298. $table->dropForeign(['user_id']);
  299. $table->dropForeign(['node_id']);
  300. $table->dropIndex('user_daily_data_flow_node_id_foreign');
  301. });
  302. Schema::table('user_data_modify_log', function (Blueprint $table) {
  303. $table->dropForeign(['user_id']);
  304. $table->dropForeign(['order_id']);
  305. $table->dropIndex('user_data_modify_log_user_id_foreign');
  306. $table->dropIndex('user_data_modify_log_order_id_foreign');
  307. });
  308. Schema::table('user_data_modify_log', function (Blueprint $table) {
  309. $table->unsignedInteger('order_id')->default(0)->nullable(false)->change();
  310. });
  311. Schema::table('user_hourly_data_flow', function (Blueprint $table) {
  312. $table->dropForeign(['user_id']);
  313. $table->dropForeign(['node_id']);
  314. $table->dropIndex('user_hourly_data_flow_node_id_foreign');
  315. });
  316. Schema::table('user_login_log', function (Blueprint $table) {
  317. $table->dropForeign(['user_id']);
  318. $table->dropIndex('user_login_log_user_id_foreign');
  319. });
  320. Schema::table('user_subscribe', function (Blueprint $table) {
  321. $table->dropUnique(['code']);
  322. $table->dropForeign(['user_id']);
  323. });
  324. Schema::table('user_subscribe_log', function (Blueprint $table) {
  325. $table->dropForeign(['user_subscribe_id']);
  326. });
  327. Schema::table('user_traffic_log', function (Blueprint $table) {
  328. $table->dropForeign(['user_id']);
  329. $table->dropForeign(['node_id']);
  330. $table->dropIndex('user_traffic_log_node_id_foreign');
  331. });
  332. Schema::table('verify', function (Blueprint $table) {
  333. $table->dropForeign(['user_id']);
  334. $table->dropIndex('verify_user_id_foreign');
  335. });
  336. }
  337. }