質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

1回答

1494閲覧

Laravelのrefreshdatabaseにおけるsqliteのエラー

OmoteRikuto

総合スコア1

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2020/07/13 10:04

laravelでテストを実行しようとしております。アプリケーション自体はpostgresを使用していますがテストにはsqliteを使用するつもりです。
ただテスト実行時に下記のようなエラーが出てしまいます。ブラウザ上では正しく動いております。

migrattionファイルのdropcolumnに関して全てコメントアウトしましたがダメでした。

laravel 6.8です。laradockで環境構築しています。

ArticleController

1public function index() 2 { 3 $articles_obj = Article::orderBy('created_at', 'desc')->paginate(10); 4 $articles = $articles_obj->load(['user', 'likes', 'tags']); 5 return view('articles.index', [ 6 'articles_obj' => $articles_obj, 7 'articles' => $articles, 8 ]); 9 }

ArticleControllerTest

1<?php 2 3namespace Tests\Feature; 4 5use Illuminate\Foundation\Testing\RefreshDatabase; 6use Illuminate\Foundation\Testing\WithFaker; 7use Tests\TestCase; 8 9class ArticleControllerTest extends TestCase 10{ 11 use RefreshDatabase; 12 13 /** 14 * @test 15 */ 16 public function testIndex() 17 { 18 $response = $this->get(route('articles.index')); 19 20 $response->assertStatus(200) 21 ->assertViewIs('articles.index'); 22 } 23}
E 1 / 1 (100%) Time: 1.5 seconds, Memory: 20.00 MB There was 1 error: 1) Tests\Feature\ArticleControllerTest::testIndex BadMethodCallException: SQLite doesn't support dropping foreign keys (you would need to re-create the table). /var/www/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php:150 /var/www/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php:117 /var/www/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php:96 /var/www/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php:290 /var/www/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php:151 /var/www/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:261 /var/www/database/migrations/2020_07_06_215019_add_foreign_key_cascade.php:21 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:392 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:401 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:200 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:165 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:110 /var/www/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:71 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32 /var/www/vendor/laravel/framework/src/Illuminate/Container/Util.php:36 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34 /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php:590 /var/www/vendor/laravel/framework/src/Illuminate/Console/Command.php:134 /var/www/vendor/symfony/console/Command/Command.php:255 /var/www/vendor/laravel/framework/src/Illuminate/Console/Command.php:121 /var/www/vendor/symfony/console/Application.php:1000 /var/www/vendor/symfony/console/Application.php:271 /var/www/vendor/symfony/console/Application.php:147 /var/www/vendor/laravel/framework/src/Illuminate/Console/Application.php:93 /var/www/vendor/laravel/framework/src/Illuminate/Console/Application.php:185 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:273 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:137 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:223 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:56 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:40 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:17 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:115 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:84 ERRORS! Tests: 1, Assertions: 0, Errors: 1. root@11cc65f43916:/var/www#

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

laravelでテストを実行しようとしております。アプリケーション自体はpostgresを使用していますがテストにはsqliteを使用するつもりです。

同じSQLでもデータベースやそのバージョンによって方言が大きいですから、本番機のPostgreSQLと同じデータベース、同じバージョンを開発環境でも用意しましょう。

投稿2020/07/13 10:16

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問