2015-02-04 2 views
0

Я пытаюсь написать простой 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] 

Как я могу исправить эту ошибку?

+0

Вы должны проверить create_users_table.php. По какой-то причине таблица пользователей изменяется и не создается. Поскольку этого не существует, это может быть так. – MaGnetas

+1

Убедитесь, что вы используете метод 'Schema: create', а не' Schema :: table' в ваших миграциях. –

ответ

0

Я только что узнал, что я использовал неправильную команду для создания таблиц миграции.
Я использовал следующие команды:

php artisan migrate:make create_users_table --create=users 
php artisan migrate:make create_urls_table --create=urls 

Затем я добавил свой код к файлам и попытался следующие команды:

php artisan migrate 
php artisan db:seed 

И это сработало