Я пытаюсь написать простой REST API для laravel 4.2. Вот мой код:
Это команда для создания двух таблиц:Миграция сбоя в laravel 4.2. *
php artisan migrate:make create_users_table --table=users --create
php artisan migrate:make create_urls_table --table=urls --create
Затем я добавил этот код в up
разделе create_users_table.php
:
$table->increments('id');
$table->string('username')->unique();
$table->string('password');
$table->timestamps();
Я добавил этот код в up
разделе create_urls_table.php
:
$table->increments('id');
$table->integer('user_id');
$table->string('url');
$table->string('description');
$table->timestamps();
Конфигурации моего db следующие:
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'read_it_later',
'username' => '<username>',
'password' => '<password>',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
Затем я добавил это UserTableSeeder.php
в seeds
папку в папке database
:
<?php
class UserTableSeeder extends Seeder {
public function run()
{
DB::table('users')->delete();
User::create(array(
'username' => 'firstuser',
'password' => Hash::make('first_password')
));
User::create(array(
'username' => 'seconduser',
'password' => Hash::make('second_password')
));
}
}
Тогда я раскомментировал $this->call('UserTableSeeder')
в DatabaseSeeder.php
файле.
Тогда я запустил эту команду:
php artisan migrate
И я получил следующее сообщение об ошибке:
**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? y
Migration table created successfully.
[Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'read_it_later.users' doesn't exist (SQL: alter table `users` add `id` int unsigned not
null auto_increment primary key, add `username` varchar(255) not null, add `password` varchar(255) not null, add `created_at` timestamp default 0
not null, add `updated_at` timestamp default 0 not null)
[PDOException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'read_it_later.users' doesn't exist
migrate [--bench[="..."]] [--database[="..."]] [--force] [--path[="..."]] [--package[="..."]] [--pretend] [--seed]
Как я могу исправить эту ошибку?
Вы должны проверить create_users_table.php. По какой-то причине таблица пользователей изменяется и не создается. Поскольку этого не существует, это может быть так. – MaGnetas
Убедитесь, что вы используете метод 'Schema: create', а не' Schema :: table' в ваших миграциях. –