【发布时间】:2015-05-02 07:25:22
【问题描述】:
我绞尽脑汁想弄清楚这一点,但无济于事。请帮忙。
我有以下代码:
Schema::create('inventory_category_relations', function(Blueprint $table)
{
$table->increments('id');
$table->integer('inventory_category_id')->unsigned()->nullable()->default(null);
$table->foreign('inventory_category_id')->references('id')->on('inventory_categories');
$table->integer('inventory_id')->unsigned()->nullable()->default(null);
$table->foreign('inventory_id')->references('id')->on('inventory');
$table->timestamps();
$table->softDeletes();
});
上面的代码引用了一个'inventory'和'inventory_categories'表,这些表已经被其他表创建和引用,它们完美地工作。但是,每次我尝试使用上面的代码运行“php artisan migrate”时,我的终端都会崩溃。
编辑 这是我原来的“inventory”和“inventory_categories”创建语句:
Schema::create('inventory_categories', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->timestamps();
$table->softDeletes();
});
Schema::create('inventory', function(Blueprint $table)
{
$table->increments('id');
$table->string('title');
$table->mediumText('basic_description');
$table->unsignedInteger('inventory_type_id');
$table->foreign('inventory_type_id')->references('id')->on('inventory_types')->onDelete('cascade');
$table->unsignedInteger('vendor_id');
$table->foreign('vendor_id')->references('id')->on('vendors')->onDelete('cascade');
$table->unsignedInteger('inventory_category_id');
$table->foreign('inventory_category_id')->references('id')->on('inventory_categories')->onDelete('cascade');
$table->decimal('price',10,2);
$table->decimal('compare_price',10,2);
$table->integer('quantity');
$table->string('sku');
$table->string('barcode');
$table->boolean('no_stock_purchase')->default(0);
$table->boolean('shipping_address')->default(0);
$table->decimal('shipping_weight')->default(0);
$table->boolean('free_shipping')->default(0);
$table->boolean('taxes')->default(1);
$table->boolean('multiple_options')->default(0);
$table->boolean('custom_variants')->default(0);
$table->boolean('active')->default(1);
$table->boolean('has_publish_date')->default(0);
$table->dateTime('start_date');
$table->dateTime('end_date');
$table->string('url');
$table->string('meta_title');
$table->mediumText('meta_description');
$table->boolean('has_commission')->default(0);
$table->unsignedInteger('created_by');
$table->foreign('created_by')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
$table->softDeletes();
});
我在 wamp 服务器上使用 laravel 4.2
更新: 好的,我使用“php artisan migrate > migrate_error.log”并将结果发布到pastebin。该文件太大,但我发布了适合的内容: http://pastebin.com/J8KZn7R5
【问题讨论】:
-
“我的终端爆炸了”是什么意思。您将需要更具体。错误信息是什么?
-
您可以尝试使用
php artisan migrate:refresh刷新迁移。这将回滚所有迁移并再次运行它们。 -
感谢您的回复。我是个新手,但我的终端开始输出随机 laravel 文件的代码行,直到达到 php 内存限制。我也尝试过刷新和回滚,但仍然遇到同样的问题。
-
您能否将终端输出记录到文件中,例如
php artisan migrate > migrate_error.log然后把日志文件的内容贴在pastebin.com 上供我们查看。 -
首先你能检查库存和inventory_categories 表上的索引是否被命名为'id',并且与inventory_category_id 和inventory_id 字段的类型(无符号)和大小相同?
标签: php mysql laravel wamp laravel-artisan