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

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

ただいまの
回答率

90.45%

  • PHP

    24597questions

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

  • Laravel 5

    2640questions

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

  • SQLite

    798questions

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

  • MariaDB

    389questions

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

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

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 501

yuus2733

score 103

初めての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があるから作成できないようです。このような場合どうすればいいでしょうか。ご教示ください。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

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 17: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データベースをデフォルトのもの入れ直したほうがいいでしょうか・・・

    キャンセル

  • 2017/08/28 17:56 編集

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

    キャンセル

  • 2017/08/28 18:35

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

    キャンセル

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

  • ただいまの回答率 90.45%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    24597questions

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

  • Laravel 5

    2640questions

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

  • SQLite

    798questions

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

  • MariaDB

    389questions

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