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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1604閲覧

[MariaDB,SQLite3]データベース環境設定とバージョン管理

退会済みユーザー

退会済みユーザー

総合スコア0

SQLite

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/08/28 07:49

初めてのLaravel5.1(6)

https://laravel10.wordpress.com/2015/02/21/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A/

初めてのLaravel5.1(7)

https://laravel10.wordpress.com/2015/02/25/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AElaravel-5-6-%E3%83%9E%E3%82%A4%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7db%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1/

上記2つの記事(連続しています)を参考にしています。

以下のエラーを解決したくて色々調べましたが、次に進めずに困っています。
翻訳をして、「すでに作られている」というようなメッセージであることは読みました。

php artisan migrateのエラー

[Illuminate\Database\QueryException] SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists (SQL: create table `users` (`id` int unsigned not null auto_increment primary key, `name` varchar(255) not null, `email` varchar(255) not null, `password` varchar(255) not null, `remember_token` varchar(100) null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci) [PDOException] SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists

初めてのLaravel(6)のmigrateを実行して、ユーザー検索まで成功しましたので、(7)に進みました。
(7)でSQLiteのファイルを手動作成した後(SQLiteのフォルダはデスクトップにおいています)、
Laravelプロジェクト作成時に同時作成されて2つのマイグレーションファイル(timestamp_create_users_table.php,timestamp_create_password_resets_table.php)
を実行する、という部分でphp artisan migrateをすると先のエラーが出ています。
SQLiteでのデータベース作成はできています。
MySQLのほうではデフォルトで作成されるusersがあるから作成できないようです。このような場合どうすればいいでしょうか。ご教示ください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Laravelのマイグレーション情報は、php artisan migrate:install実行時に対象DBにmigrationsテーブルが作成され、ここにphp artisan migrateで実行していくdatabase/migrations下のマイグレーションファイルの実行記録が書き込まれていきます。
これが実際のDBの状態(テーブルの有無等)と不整合となるとマイグレーションの実行が失敗する場合があるので、学習中であれば、mysqlのテーブルを削除してから試すと解決するかと思います。

また既にデータベースにマイグレーション管理外のテーブル等がある状況では、Laravelのmigrations-generatorライブラリでDB内容からマイグレーションファイルを出力した後に後に付け足していくとうまく管理していけるかと思います。
migrations-generator
Laravelで既存のDBからmigrationsファイルを作成する「migrations-generator」

投稿2017/08/28 08:21

編集2017/08/28 08:25
aro10

総合スコア4106

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

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

退会済みユーザー

退会済みユーザー

2017/08/28 08:54

ありがとうございます。 ごちゃごちゃして分けわからなくなっているので、一度mysqlデータベースを削除して、migrateを実行したところ、今度は先に作ってあるマイグレーションファイルと整合しないためだと思うのですが、 [Illuminate\Database\QueryException] Database (mysql) does not exist. (SQL: select * from sqlite_master where type = 'table' and name = migrations) [InvalidArgumentException] Database (mysql) does not exist. というエラーが出ました。 この場合はマイグレーションファイルから作り直すしかないでしょうか? それともmysqlデータベースをデフォルトのもの入れ直したほうがいいでしょうか・・・
aro10

2017/08/28 09:12 編集

migrationsテーブルがないというのは、php artisan migrate:installを実行してみてください。そのコマンドによって作成されます。 DBマイグレーション機能はテスト時等に便利ですが、特に使わなくてもWebアプリ機能に不足はないので難しい場合は読み飛ばしてもよいかと思います(テーブル定義はSQLでCREATE文を作るか、MySQL Workbench等のGUIで作成するなどでも問題ないです)。
退会済みユーザー

退会済みユーザー

2017/08/28 09:35

migrate:installを実行しましたが、先と同じようなエラーが出ました。 そしてPHPmyadminをいじっていたら失敗したようで#2002がでてアクセスすら出来なくなってしまったので今Mysqlの再インストールからやっています・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問