Php 雄辩的迁移与非团队的手动SQL

Php 雄辩的迁移与非团队的手动SQL,php,orm,eloquent,Php,Orm,Eloquent,迁移 我对这个概念还不熟悉,我认为让数据库保持同步对团队来说很有用(尽管我可以使用工作流的描述)。但是我一个人工作没有什么好处 对我来说,拥有另一个更容易失败的层与开发接缝更舒适的层的缺点不像是一个理性的交易 我是否在PHP中使用 $capsule::schema()->create('properties', function($table) { $table->increments('id'); $table->string('name'); });

迁移 我对这个概念还不熟悉,我认为让数据库保持同步对团队来说很有用(尽管我可以使用工作流的描述)。但是我一个人工作没有什么好处

对我来说,拥有另一个更容易失败的层与开发接缝更舒适的层的缺点不像是一个理性的交易

我是否在PHP中使用

$capsule::schema()->create('properties', function($table) {

    $table->increments('id');
    $table->string('name');

});

$capsule::schema()->create('values', function($table) {

    $table->increments('id');
    $table->string('value');
    $table->integer('property_id');

});

$capsule::schema()->create('properties_values', function($table)
{
    $table->increments('id');

    $table->integer('property_id'); // the id of the property
    $table->integer('value_id'); // the id of the value that this property depends on

});
或者在SQL中

CREATE TABLE `properties` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

CREATE TABLE `properties_values` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `property_id` int(11) NOT NULL,
  `value_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

CREATE TABLE `values` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `value` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `property_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
看起来差别不大

问题:
A:当我决定手动创建表时,有什么需要注意的吗?
B:(已经在文档中找到了这一点)为什么外键不能自动生成?迁移中如何生成外键?
C:有没有办法从定义的模型而不是那些模式创建标准表