我希望提高小数列的小数精度和小数位数。
我知道我可以删除该列,然后重新创建它,但这样做将意味着丢失该列中的数据。
有没有一种方法可以使用 Laravel Schema::table 来改变列的精度和比例而不删除它?
例如类似于:
Schema::table('prices', function(Blueprint $t) {
$t->buy_price->decimal(5,2);
});
最佳答案
这对我有用:
public function up()
{
Schema::table('prices', function(Blueprint $t) {
$t->decimal('buy_price', 5, 2)->change();
});
}
回滚时使用原始精度值 3, 1 代替
public function down()
{
Schema::table('prices', function(Blueprint $t) {
$t->decimal('buy_price', 3, 1)->change();
});
}
我避免使用特定于数据库的“原始”语句,因为当我更改为另一个 DBMS 引擎时它们可能会失败。所以我让 Laravel 在使用 DB 时处理必要的语法
关于Laravel 4.2 迁移 - 在不删除列的情况下更改小数精度和比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215570/