質問編集履歴

3

書式の改善

2021/07/14 04:23

投稿

kinoko8800
kinoko8800

スコア16

test CHANGED
@@ -1 +1 @@
1
- 自力で解決いたまし
1
+ laravel 複合主キーを設定した
test CHANGED
@@ -1 +1,27 @@
1
- laravelのマイグレーションファイルについての質問でしたが解決済み。
1
+ 該当マイグレーションファイル
2
+
3
+ ```
4
+
5
+ public function up()
6
+
7
+ {
8
+
9
+ Schema::create('followers', function(Blueprint $table) {
10
+
11
+ $table->integer('following_user_id')->unsigned();
12
+
13
+ $table->integer('followed_user_id')->unsigned();
14
+
15
+ $table->timestamps();
16
+
17
+
18
+
19
+ $table->foreign('following_user_id')->references('id')->on('users');
20
+
21
+ $table->foreign('followed_user_id')->references('id')->on('users');
22
+
23
+ });
24
+
25
+ }
26
+
27
+ ```

2

誤字

2021/07/14 04:23

投稿

kinoko8800
kinoko8800

スコア16

test CHANGED
@@ -1 +1 @@
1
- laravel 複合キーからunique制約に変更した
1
+ 自力で解決いたまし
test CHANGED
@@ -1,143 +1 @@
1
- 下記のマイグレーションで構築されテーブルあります
2
-
3
- 下記のファイルと別のマイグレーションファイルを作り、room_idとuser_idの複合キーからunique制約に変更し、user_idをnullを許容する外部キーに変更したいと思っております。(user_idがnullになる要件が存在する)
4
-
5
-
6
-
7
- ```ここに言語を入力
8
-
9
- public function up()
10
-
11
- {
12
-
13
- Schema::create('chat_users', function (Blueprint $table) {
14
-
15
- $table->string('room_id');
16
-
17
- $table->bigInteger('user_id')->unsigned();
18
-
19
- $table->primary(['room_id','user_id']);
20
-
21
-
22
-
23
- $table->foreign('room_id')->references('id')->on('chat_rooms')->onDelete('cascade');
24
-
25
- $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
26
-
27
- });
28
-
29
- }
30
-
31
-
32
-
33
- /**
34
-
35
- * Reverse the migrations.
36
-
37
- *
38
-
39
- * @return void
40
-
41
- */
42
-
43
- public function down()
44
-
45
- {
46
-
47
- Schema::dropIfExists('chat_users');
48
-
49
- }
50
-
51
- ```
52
-
53
-
54
-
55
-
56
-
57
- 新たに作成したマイグレーションファイル
58
-
59
- ```ここに言語を入力
60
-
61
- public function up()
62
-
63
- {
64
-
65
- //実行順序
66
-
67
- //change
68
-
69
- //add
70
-
71
- //その他(drop、foreign、dropForeign、primary、dropPrimaryなど)
72
-
73
-
74
-
75
- Schema::table('chat_user', function (Blueprint $table) {
76
-
77
- $table->dropPrimary();
78
-
79
- });
80
-
81
-
82
-
83
- Schema::table('chat_user', function (Blueprint $table) {
84
-
85
- $table->unsignedBigInteger('user_id')->nullable()->change();
86
-
87
- $table->unique(['room_id', 'user_id']);
88
-
89
- });
90
-
91
- }
92
-
93
-
94
-
95
- /**
96
-
97
- * Reverse the migrations.
98
-
99
- *
100
-
101
- * @return void
102
-
103
- */
104
-
105
- public function down()
106
-
107
- {
108
-
109
- Schema::table('chat_user', function (Blueprint $table) {
110
-
111
- $table->bigInteger('user_id')->nullable(false)->unsigned()->change();
112
-
113
- $table->primary(['room_id', 'user_id']);
114
-
115
- $table->dropUnique('chat_user_room_id_unique');
116
-
117
- $table->dropUnique('chat_user_user_id_unique');
118
-
119
- });
120
-
121
- }
122
-
123
- ```
124
-
125
-
126
-
127
- 実行時に下記のエラー
128
-
129
- ```ここに言語を入力
130
-
131
- SQLSTATE[HY000]: General error: 1025 Error on rename of './homestead/#sql-679_c3f' to './homestead/chat_user' (errno: 150 - Foreign key constraint is incorrectly formed) (SQL: alter table `chat_user` drop primary key)
132
-
133
-
134
-
135
- ```
136
-
137
-
138
-
139
-
140
-
141
- どなたかヒントいただけると幸いです。
142
-
143
- よろしくお願いいたします。
1
+ laravelのマイグレーションファイルについての質問たが解決済み

1

情報追加

2021/07/14 03:39

投稿

kinoko8800
kinoko8800

スコア16

test CHANGED
File without changes
test CHANGED
@@ -54,6 +54,90 @@
54
54
 
55
55
 
56
56
 
57
+ 新たに作成したマイグレーションファイル
58
+
59
+ ```ここに言語を入力
60
+
61
+ public function up()
62
+
63
+ {
64
+
65
+ //実行順序
66
+
67
+ //change
68
+
69
+ //add
70
+
71
+ //その他(drop、foreign、dropForeign、primary、dropPrimaryなど)
72
+
73
+
74
+
75
+ Schema::table('chat_user', function (Blueprint $table) {
76
+
77
+ $table->dropPrimary();
78
+
79
+ });
80
+
81
+
82
+
83
+ Schema::table('chat_user', function (Blueprint $table) {
84
+
85
+ $table->unsignedBigInteger('user_id')->nullable()->change();
86
+
87
+ $table->unique(['room_id', 'user_id']);
88
+
89
+ });
90
+
91
+ }
92
+
93
+
94
+
95
+ /**
96
+
97
+ * Reverse the migrations.
98
+
99
+ *
100
+
101
+ * @return void
102
+
103
+ */
104
+
105
+ public function down()
106
+
107
+ {
108
+
109
+ Schema::table('chat_user', function (Blueprint $table) {
110
+
111
+ $table->bigInteger('user_id')->nullable(false)->unsigned()->change();
112
+
113
+ $table->primary(['room_id', 'user_id']);
114
+
115
+ $table->dropUnique('chat_user_room_id_unique');
116
+
117
+ $table->dropUnique('chat_user_user_id_unique');
118
+
119
+ });
120
+
121
+ }
122
+
123
+ ```
124
+
125
+
126
+
127
+ 実行時に下記のエラー
128
+
129
+ ```ここに言語を入力
130
+
131
+ SQLSTATE[HY000]: General error: 1025 Error on rename of './homestead/#sql-679_c3f' to './homestead/chat_user' (errno: 150 - Foreign key constraint is incorrectly formed) (SQL: alter table `chat_user` drop primary key)
132
+
133
+
134
+
135
+ ```
136
+
137
+
138
+
139
+
140
+
57
141
  どなたかヒントいただけると幸いです。
58
142
 
59
143
  よろしくお願いいたします。