in your .env file you have to replace these fields with real values:
DB_DATABASE=[database_name_here]
DB_USERNAME=[database_username_here]
DB_PASSWORD=[password_here]
First off, I'm new to all this. I have never developed an app before. I had started last year and had a little bit of progress. I followed the tutorials here on Laracasts. I hit a road-block and stopped for several months. Somewhere in between my computer crashed, luckily I had my project folder saved on Dropbox.
I started up again this week with a fresh install of macOS, Homestead (via VirtualBox/Vargrant) composer, Laravel, MySQL server/workbench, etc. I edited the homestead.yaml file to point to my project's folder in Dropbox. When visited my app's URL (http://homestead.app) it loaded up just fine. I recreated the database and re-ran the migrations. All was well, my database schemas were just as they were when I was first working on this.
However, when I attempted to create a test user in my app, I received the following error: "PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'clat23_database"
The weird part is that the database migrations were successful when I ran "php artisan migrate".
What am I missing? Are there any special processes I need to perform to properly transition my project folder from my old install of my development environment to my new install?
Below you will find the code (that I believe) pertain to my issue, please let me know if any other part of my code will help diagnose this issue. Thanks!
.env:
APP_ENV=local
APP_DEBUG=true
APP_KEY=clat23_app_key
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=clat23_database
DB_USERNAME=clat23_username
DB_PASSWORD=clat23_password
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=log
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
database.php:
<?php
return [
/*
|--------------------------------------------------------------------------
| PDO Fetch Style
|--------------------------------------------------------------------------
|
| By default, database results will be returned as instances of the PHP
| stdClass object; however, you may desire to retrieve records in an
| array format for simplicity. Here you can tweak the fetch style.
|
*/
'fetch' => PDO::FETCH_CLASS,
/*
|--------------------------------------------------------------------------
| Default Database Connection Name
|--------------------------------------------------------------------------
|
| Here you may specify which of the database connections below you wish
| to use as your default connection for all database work. Of course
| you may use many connections at once using the Database library.
|
*/
'default' => env('DB_CONNECTION', 'mysql'),
/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
| Here are each of the database connections setup for your application.
| Of course, examples of configuring each database platform that is
| supported by Laravel is shown below to make development simple.
|
|
| All database work in Laravel is done through the PHP PDO facilities
| so make sure you have the driver for your particular database of
| choice installed on your machine before you begin development.
|
*/
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
],
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'clat23_database'),
'username' => env('DB_USERNAME', 'clat23_username'),
'password' => env('DB_PASSWORD', 'clat23_password'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
],
],
/*
|--------------------------------------------------------------------------
| Migration Repository Table
|--------------------------------------------------------------------------
|
| This table keeps track of all the migrations that have already run for
| your application. Using this information, we can determine which of
| the migrations on disk haven't actually been run in the database.
|
*/
'migrations' => 'migrations',
/*
|--------------------------------------------------------------------------
| Redis Databases
|--------------------------------------------------------------------------
|
| Redis is an open source, fast, and advanced key-value store that also
| provides a richer set of commands than a typical key-value systems
| such as APC or Memcached. Laravel makes it easy to dig right in.
|
*/
'redis' => [
'cluster' => false,
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
];
Are you running the migrations from your homestead server? And when you edited your homestead.yaml file, you did change the database name?
Try this: After doing your Vagrant Up, and it's come back to the command line, do 'vagrant ssh'. Then cd into your app folder (it will probably be the only one shows when you do an ls. Then do php artisan migrate.
I think the previous migrate has created the database on your local machine rather than in your VM,
Please or to participate in this conversation.