为什么不能,而且似乎没什么可迁移的?
迁移时创建表的作者和书籍可以,但是外键后不能
迁移添加外来:
public function up()
{
Schema::table('books', function(Blueprint $table) {
$table->foreign('author_id')->references('id')->on('authors')
->onDelete('restrict')
->onUpdate('cascade');
});
}
使用它:
php artisan migrate
和此:
php artisan migrate --path=app/database/migrations/2016_07_11_105204_add_foreign_key_to_books.php
仍然不能,
表格书:public function up()
{
Schema::create('books', function(Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->integer('author_id')->unsigned();
$table->integer('amount')->unsigned();
$table->timestamps();
});
}
表作者:
public function up()
{
Schema::create('authors', function(Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
感谢您的帮助..
答案 0 :(得分:1)
我有类似的问题。我找到了办法。这不是官方的
php artisan migrate
。它对我有用。
答案 1 :(得分:0)
Laravel 4.2的schema不支持更新列。所以你可以这样做(首先删除它,然后创建它作为外键):
Schema::table('books', function(Blueprint $table) {
{
$table->dropColumn('author_id');
$table->integer('author_id')->after('title')->unsigned();
$table->foreign('author_id')->references('id')->on('authors')
->onDelete('restrict')
->onUpdate('cascade');
}
答案 2 :(得分:0)
对于具有--path
选项的启动迁移调用命令,该命令仅具有目录路径。
php artisan migrate --path=app/database/migrations
您使用文件名设置-path
。