Ошибка миграции в laravel 4.2. *

0

Я пытаюсь написать простой REST API для 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. По какой-то причине таблица пользователей изменяется, а не создается. Так как он не существует, это может быть так.
  • 1
    Убедитесь, что вы используете метод Schema:create а не Schema::table в своих миграциях.
Теги:
laravel-4

1 ответ

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню