当前位置: 首页 > 知识库问答 >
问题:

通过迁移将新列添加到用户表不会生效

咸弘雅
2023-03-14

Iam正在尝试向现有集合添加列。Iam使用MongoDB Iam运行以下迁移:

<?php

use Illuminate\Database\Migrations\Migration;

class AddLocaleColumn extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('users', function ($table) {
        $table->string('locale')->default(config('app.locale'));
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('users', function ($table) {
        $table->dropColumn('locale');
    });
}

}

当我执行“php artisan migrate”时,得到的响应很好:

php artisan migrate
Migrating: 2020_01_01_000000_add_locale_column
Migrated:  2020_01_01_000000_add_locale_column

然后,当我去“robomongo 3t studio”验证新专栏是否已创建时,我看不到它

我错过了什么吗。我对mongodb和laravel是新来的,对我来说太赤裸了。

共有1个答案

皇甫德庸
2023-03-14

MongoDB在集合中没有列(或任何架构)。单个文档可能有不同的字段,并且字段集可能因文档而异。

“向集合添加列”的操作在MongoDB中没有意义。您只能向单个文档添加特定字段的值。

同样,当使用MongoDB时,您通常不需要进行迁移或运行迁移来调整模式,您可以随时插入您喜欢的任何字段。

(数据迁移是不同的,它是MongoDB上下文中迁移的有效用例。)

 类似资料:
  • 当我们在Laravel框架中运行migrate:install时,migrations表是在有两列(migration,batch)的数据库中创建的,无论如何都要添加在时间戳处创建的新列。谢谢

  • 我有一些表,我想在这个表中添加新的列。我想添加默认值为空的字符串列。 我试着这样加上去 或 但我有一个错误

  • 我正在使用laravel将列位置添加到用户表中。我创建了一个名为2017\u 05\u 18\u 025207\u添加\u用户名\u字段\u到\u用户\u表的新迁移。。并对其进行了修改,以描述模式以及所有的up()和down()。但是,当我尝试使用PHP artisan migrate进行迁移时。它没有反映在数据库中。 这段代码是我在新迁移中写的。

  • 我在文件中的迁移中添加了一个新表。。 这是代码: 当我运行时,我的数据库中只有默认的laravel用户(和迁移)表。没有货币。 原因可能是什么? 编辑 迁移一切都很顺利。问题是: SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节(SQL:更改表用户添加唯一users_email_unique(电子邮件)) SQLSTATE[42000]:语法错误

  • 我需要将一个通用的PdfObject添加到一个PDF中,而不需要将它放在文档的任何地方。 下面是iText 5中的代码: 下面是我在iText 7中尝试做的事情(没有addPdfObject方法): 但是,在我关闭数组后,它不在PDF中。我记得Bruno在某处提到过iText 7现在删除close上未使用的对象,类似于iText 5中的pdfreader.removeUnusedObjects()

  • 问题内容: 我不知道如何使用Laravel框架向现有数据库表添加新列。 我试图使用…来编辑迁移文件。 在终端中,我执行和。 如何添加新列? 问题答案: 要创建迁移,您可以在Artisan CLI上使用migration:make命令。使用特定名称以避免与现有模型冲突 对于Laravel 3: 对于Laravel 5+: 然后,您需要使用该方法(在访问现有表而不是创建新表时)。您可以添加如下所示的列