我需要2个MySQL表,例如:electronB
,var ATest = function(...args)
{
if (args.length !== 2) {
throw new Error('Two arguments required: atom and electron');
}
const [atom, electron] = args;
this.atom = atom;
this.electron = electron;
}
具有完全相同的结构,
history
表用于从history_archive
表中移动项目,并在其中减少行以便在history_archive
表中进行更快的查询(而不仅仅是将它们标记为在同一表中已归档)
我想到要进行2次迁移,但是这2个表在它们之间移动时必须完全相同,我不认为复制/粘贴每列都是一个好主意!
这里的最佳做法是什么?
我知道以下可能性:
history
但是我的问题是:我如何只编写一次蓝图/构造并将其传递给两个history
(并且有两个名称不同但结构相同的表)< / p>
我需要的是这样的东西(不起作用):
Schema::create('history', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_id');
// ... extra columns
});
// Exactly the same structure as above
Schema::create('history_archive', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_id');
// I don't want to copy paste every column from history table here...
});
答案 0 :(得分:3)
您可以在同一迁移中创建许多表。如果所有表的结构都完全相同,并且您不想复制粘贴每一列,那么我认为您可以执行以下操作:
$tables = ['history', 'history_archive'];
foreach($tables as $tablename) {
Schema::create($tablename, function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_id');
// ... extra columns
});
}