laravelのusrsテーブルに実運用の初期ユーザをセットする。Seederでやるとパスワードやメアドがソースやgitに残るので、phpでsql文を生成してみた。
新人さんが1ユーザずつ、手入力で追加しようとしていたので「こういう時こそスクリプトを作るんだよ!」と教えた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Route::get('/insert_sql', function () { // insert文を生成 $str_sql = "INSERT INTO `users` ( `name`, `email`, `password`, `created_at`) VALUES <br>\n"; $data = [ ['adam','adam@example.com','適当なパスワードその1'], ['bell','bell@example.com','適当なパスワードその2'], ['cecil','cecil@example.com','適当なパスワードその3'], // 好きな数のユーザー情報を配列に格納 ]; // ユーザの数だけ for($i=0; $i<count($data); $i++){ // laravelのuserパスワードはbcryptでハッシュ化する。 $str_sql .= sprintf("('%s', '%s', '%s', '%s'), <br>\n", $data[$i][0], $data[$i][1], bcrypt($data[$i][2]), Date('Y-m-d H:i:s')); } // ファイル出力でも良いけど、ブラウザに表示 return $str_sql; }); |
こんな感じで出力される。最期のカンマ→セミコロンは手で修正。
INSERT INTO users
( name
, email
, password
, created_at
,) VALUES
(‘adam’, ‘adam@example.com’, ‘$2y$10$vdOfbWI3.nyj7HDacwOrLuOCT.zbku032ixTGukgfeLG1MTIlPKMC’, ‘2019-12-02 12:24:50’),
(‘bell’, ‘bell@example.com’, ‘$2y$10$sLUtiUsUjZkjnJ/.rxojxeKcOAsFP7khv1ELn7JJgyzIkRJK5IXIW’, ‘2019-12-02 12:24:50’),
(‘cecil’, ‘cecil@example.com’, ‘$2y$10$z1mo6o2Ik.00DtKxsRCGfuqfQIBEfRX51onu66SeWjlylSNiNh12K’, ‘2019-12-02 12:24:50’);
phpMyAdminで実行してもいいけど、ユーザ数が多い場合にはコマンドラインからsourceコマンドで実行の方が、軽くて良い。