error when run php artisan serve command
C:\xampp\htdocs\crm>php artisan serve
In Connection.php line 647:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'crm.clients' doesn't exist (SQL: select * from `clients` where exists (select * from `followups` where `clients`.`id` = `followups`.`client_id` and `followup` = TBRO and date(`date`) = 2018-02-18))
In Connection.php line 319:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'crm.clients' doesn't exist
the trouble seem to be that you don't have the table created. Have you ran the migrate command?
In this case, you have to first update your composer by this command.
composer update
I can suggest you to check your db if there is a db called crm in the case you are in a MySQL environment and also check your connection to the database in the config/database or in the .env . It seems that you cannot create the table with the migrate command and since you doesn’t have the tables the serve command report an error.
Related
I have a project on which I need to run php artisan migrate. It should be easy but I am getting an error:
php artisan migrate
Illuminate\Database\QueryException
SQLSTATE[42S02]: Base table or view not found: 1146 Table
'skz.master_courses' doesn't exist (SQL: select * from
master_courses where date_from > 2021-06-01 and
master_courses.deleted_at is null order by date_from asc limit
1)
I don't understand where the select command comes from. Does anybody know where is it from?
The error usually throw when database doesn't exist in mysql.
But in your case, database exists in mysql server.So you it look like your application executing select query in any one of the service provider boot() method
public function boot()
{
}
So you might need to stop query execution till migration completes.
I can't run any php artisan command, it shows always the same error. I understand what it say but I can't execute php artisan migrate to make that table. I'm on VPS Ubuntu 16.04. Everything works perfectly on my localhost,this problem appears only when deploy app on vps
error image
error is:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'cv.contacts' doesn't exist (SQL: select * from `contacts` where `contacts`.`deleted_at` is null)
My routes:
Route::get('/', 'HomeController#index')->name('home');
Route::post('/', 'ContactController#store')->name('contact.store');
//eng
Route::get('/en', 'HomeController#index_en')->name('home.en');
Route::post('/en', 'ContactController#store')->name('contact.store');
I wanted to make a migration using php artisan migrate but I got an error:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists
So naturally I wanted to drop my tables using php artisan migrate:rollback, but I got:
Nothing to rollback.
What the heck? It said just earlier that the users table was already created. What should I do? I can delete the table with phpmyadmin but I want to learn how to use artisan.
Thank you for your help.
Failing an answer to how to delete the tables with artisan when there is this problem, I will tell you how to avoid this problem in the first place. Ultimately I just deleted the tables using phpmyadmin.
I watched a tutorial on Laravel and I saw that in order to avoid the error:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
I had to add use Illuminate\Support\Facades\Schema; in AppServiceProvider.php and Schema::defaultStringLength(191); in the boot() function. But I thought that I could put any number in defaultStringLength(...) so I put 255, and the migration didn't work.
Do as it is told in the tutorials, write Schema::defaultStringLength(191);. Then, you can execute your migration using php artisan migrate and it should work properly.
In my case after defining Schema::defaultStringLength(191); in the boot() method didn't solved. Because the migrations table in the database is empty.
So the solution is open up the tinker from the composer
$ php artisan tinker
>>> Schema::drop('users')
>>> Schema::drop('password_resets')
>>> Schema::drop('orders')
>>> exit
php artisan migrate
Here is the result of the above commands executed
nishanth#localhost:~/Desktop/html/hutch$ php artisan migrate
In Connection.php line 647:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users'
already exists (SQL: create table users (id int unsigned not
null auto_incr ement primary key, name varchar(255) not null,
email varchar(255) not n ull, 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)
In Connection.php line 449:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users'
alre ady exists
nishanth#localhost:~/Desktop/html/hutch$ php artisan migrate:rollback
Nothing to rollback.
nishanth#localhost:~/Desktop/html/hutch$ php artisan tinker
Psy Shell v0.8.17 (PHP 7.1.20-1+ubuntu16.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> Schema::drop('users')
=> null
>>> Schema::drop('password_resets')
=> null
>>> Schema::drop('orders')
=> null
>>> exit
Exit: Goodbye.
nishanth#localhost:~/Desktop/html/hutch$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrating: 2018_08_18_071213_create_orders_table
Migrated: 2018_08_18_071213_create_orders_table
nishanth#localhost:~/Desktop/html/hutch$
Also define the method down(), if it doesn't exist.
Otherwise, it'll show
SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'XYZ.ABC' (SQL: drop table ABC)
/**
* Reverse the migrations.
*
* #return void
*/
public function down()
{
Schema::dropIfExists('ABC');
}
SOLUTION:
>> php artisan migrate:fresh
It will drop all tables and recreates all the migrations.
Add use Illuminate\Support\Facades\Schema; in AppServiceProvider.php and Schema::defaultStringLength(191); in the boot() function
Run php artisan migrate:fresh
Run php artisan migrate again
Solved!
php artisan db:wipe
It is a quick way to drop all the tables, their types and views if you’re using Laravel 6.x
Full description:
$ php artisan db:wipe {--database=} {--drop-views} {--drop-types} {--force}
database - The database connection to use
drop-views - Drop all tables and views
drop-types - Drop all tables and types (Postgres only)
force - Force the operation to run when in production
Sometimes, when I type :
php artisan
php artisan migrate
etc
I get the message:
[Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db.ken_permissions' doesn't exist (SQL: select * from `ken_permissions`)
Debugging, I can tell my problem happens in the artisan file in:
$status = $kernel->handle(
$input = new Symfony\Component\Console\Input\ArgvInput,
new Symfony\Component\Console\Output\ConsoleOutput
);
I had already check this answer, and didn't work:
bootstrap/app.php is clean,
I don't have app/start folder ( L5.1),
routes.php is clean
php artisan -v or php artisan --pretend doesn't work, because artisan fails before running it seems.
The only thing I have is in app/Providers
public function boot(GateContract $gate)
{
parent::registerPolicies($gate);
// Dynamically register permissions with Laravel's Gate.
foreach ($this->getPermissions() as $permission) {
$gate->define($permission->name, function ($user) use ($permission) {
return $user->hasPermission($permission);
});
}
}
One solution is to delete all my tables, then composer dump-autoload, and then it work again, but it constantly comes back.
Is it a way to trace what migration is failing?
Any idea why is it happening?
Tx!
Go to the App\Provider\AuthServiceProvider
if you use on boot method GateContract ($this->getPermission() etc), remove or add to comment all after parent::registerPolicies($gate); and done run php artisan migrate
Adding to watcher's answer here
Remove any lines requesting data from your model from these files to be sure artisan is not trying to load data from your non-existent table:
bootstrap/start.php
app/start/global.php
app/start/local.php
app/routes.php
Also be sure to un-register any service providers that utilize data from that table in their register or boot methods inside of app/config/app.php.
You can move your migrations to a database/temp folder and run your migrations one by one
php artisan migrate --path=database/temp
you will know which migration is causing problem.
NOTE
Also you can use
php artisan migrate --pretend to get the query you are trying to do.
I was creating an application on Laravel. At some point of time, I had to reinstall my WAMP server. Now I installed it again and created the same database. When I tried to migrate everything again using the command php artisan migrate, I got the following errors.
[Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1146 La table 'learning.migrations' n'exists pas (SQL: create table 'migrations' ('migration' varchar(255) not null, 'batch' int null) default character set utf8 collate utf8_unicode_ci)
and
[PDOException]
SQLSTATE[42S02]: Base table or view not found:1146 La table 'learning.migrations' n'existe pas
and
migrate [--bench[="..."]] [--database[="..."]] [--force] [--path["..."]] [--package[="..."]] [--pretend] [--seed]
What might be the problem? How can I solve this?
You can try this:
In your phpMyAdmin: create the database.
In your command console:
1) In your proyect folder execute: php artisan migrate:install
This will create the table "migrations" in your database
2) Then execute: php artisan migrate
The problem was from the wamp reinstall. When I reinstalled the wamp server, in the MySQL folder, there was an old file with the database name and everything (this was because I had not deleted the DB before reinstalling WAMP). So all you gotta do is go to your MySQL installation folder, in my case: C:\wamp\bin\mysql\mysql5.6.17\data and delete the folder with the old db name. This should solve your problem.