前提・実現したいこと
AWSでPHP(Laravel)を使い家計簿アプリを作りたいと思っています。
発生している問題・エラーメッセージ
Seederファイルを作成し、実行しようとしたところ
以下のエラーメッセージが発生しました。
ec2-user:~/environment/myapp $ php artisan db:seed Seeding: BooksTableSeeder Illuminate\Database\QueryException SQLSTATE[HY000]: General error: 1 table books has no column named inout (SQL: insert into "books" (" inout", "category", "year", "month", "amount", "updated_at", "created_at") values (1, 給料, 2021, 1, 25, 2021-10-16 07:33:22, 2021-10-16 07:33:22)) at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671 667| // If an exception occurs when attempting to run a query, we'll format the error 668| // message to include the bindings with SQL, which will make this exception a 669| // lot more helpful to the developer instead of just the database's errors. 670| catch (Exception $e) { > 671| throw new QueryException( 672| $query, $this->prepareBindings($bindings), $e 673| ); 674| } 675| +18 vendor frames 19 database/seeds/BooksTableSeeder.php:15 Illuminate\Database\Eloquent\Model::__callStatic("create") +7 vendor frames 27 database/seeds/DatabaseSeeder.php:14 Illuminate\Database\Seeder::call("BooksTableSeeder")
該当のソースコード
DatabaseSeeder.php
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { $this->call([BooksTableSeeder::class]); } }
BooksTableSeeder.php
<?php use Illuminate\Database\Seeder; use App\Book; class BooksTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Book:: create([' inout' => 1, 'category' => "給料", 'year' => 2021, 'month' => 1, 'amount' => 25]); Book:: create([' inout' => 2, 'category' => "光熱費", 'year' => 2021, 'month' => 1, 'amount' => 2]); Book:: create([' inout' => 2, 'category' => "食費", 'year' => 2021, 'month' => 2, 'amount' => 5]); Book:: create([' inout' => 2, 'category' => "家賃", 'year' => 2021, 'month' => 3, 'amount' => 7]); Book:: create([' inout' => 1, 'category' => "副業", 'year' => 2020, 'month' => 1, 'amount' => 5]); } }
試したこと
databaseファイルに作成されたdatabase.sqliteを削除してもう一度作り直しましたが、
結果は変わりませんでした。
sqlite> .schema books CREATE TABLE "books" ("id" integer not null primary key autoincrement, "inout" integer not null, "category" varchar not null, "year" integer not null, "month" integer not null, "amount" integer not null, "created_at" datetime null, "updated_at" datetime null); sqlite> touch database/database.sqlite ...> ...> ^C ...> ;Error: near "touch": syntax error sqlite> .exit ec2-user:~/environment/myapp $ touch database/database.sqlite ec2-user:~/environment/myapp $ sqlite3 database/database.sqlite SQLite version 3.7.17 2013-05-20 00:56:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .schema books CREATE TABLE "books" ("id" integer not null primary key autoincrement, "inout" integer not null, "category" varchar not null, "year" integer not null, "month" integer not null, "amount" integer not null, "created_at" datetime null, "updated_at" datetime null); sqlite> .exit
エラー内容を見て、端的に
「Connection.phpにカラムがありません」という意味だと思いました。
BookstableSeeder.phpに記述したカラムの情報などを
Connection.phpにも追記する必要があるのでしょうか?
ご教授お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/17 01:58