问题标签 [doctrine-migrations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1652 浏览

symfony - Symfony2 - 学说:迁移:差异可以创建与数据库无关的代码而不是 SQL 吗?

Runningphp app/console doctrine:migrations:diff根据需要生成一个新的迁移类,以将当前数据库模式转换为实体更改指定的模式。

此示例显示了用于创建表的此类生成的类fos_user

如您所见,生成的迁移与特定的数据库服务器相关联,在此实例中为 MySQL。

由于(预期的)性能优势减少了测试执行时间,我想在测试环境中使用内存中的 sqlite 数据库。

我可以采用上面生成的 SQL 并将其转换为$table = $schema->createTable(); $table->addColumn();等价物,但是这样做既费时又会由于人工将 SQL 转换为代码的能力差而引入错误。

教义:迁移:差异命令是否可以创建与平台无关的迁移代码,而不是上述特定于平台的 SQL?

0 投票
1 回答
1170 浏览

php - Doctrine Migrations and Fixtures:从fixture获取迁移中加载的实体

我有一个成功使用 Doctrine Migrations 和 Fixtures 的网站(很棒的功能!),但是我遇到了一个小问题。

我在现有实体中向该表添加了一个表和一个新的外键字段。迁移使用其初始值填充新表。

在使用外键为表加载数据的夹具中,我需要将该字段设置为迁移中创建的值之一,但我似乎无法从该存储库中获取任何实体。

任何想法为什么会发生这种情况,或者关于我应该如何以不同的方式做这件事的建议。

夹具实现了,ContainerAwareInterface以便我可以访问实体存储库,但是这样做:

什么都不返回,即使此时我可以看到数据库中有值。

0 投票
1 回答
2650 浏览

symfony - Symfony 2.1.7 和学说迁移捆绑错误

我正在关注本教程:http ://tutorial.symblog.co.uk/docs/extending-the-model-blog-comments.html#doctrine-2-migrations

1) 安装 Doctrine 迁移包

1.1) - 添加

到 composer.json

1.2) 运行

2)添加

在 AppKernel.php 中

3) 运行

这应该运行命令并找到当前实体和数据库之间的差异,是吗?但我得到一个错误:

这正是 (2.)

你能帮我吗?欢迎任何建议!

0 投票
5 回答
6562 浏览

symfony - 如何使用 Composer 安装 Symfony2 Bundle

我正在使用 Windows,并从其 Windows 安装程序安装了 composer。我想要做的是将DoctrineMigrationsBundle安装到我的项目中,所以我添加了

"doctrine/doctrine-migrations-bundle": "dev-master"

composer.json项目中的文件并运行

但我得到的是:无法打开输入文件:composer.phar

我的整个 composer.json 文件是

你能帮我解决这个问题吗?

0 投票
1 回答
592 浏览

symfony - Symfony2 中的 Doctrine2 迁移在创建索引时抛出异常

问题

没有以前的迁移待处理,我运行:

我收到了这个错误:

额外知识

  1. 我通过课堂上的注释来声明我的实体。
  2. 此代码正在运行(但我必须手动运行一些在出现此类异常后未运行的操作)

我想知道的

  1. 是什么导致了那个错误?
  2. 有什么办法可以解决吗?(例如通过 Doctrine 更新或一些 MySQL 参数)
0 投票
1 回答
2832 浏览

php - How to stop Doctrine2 Migrations:Diff from always adding foreign key relationships that already exist in Database?

I'm using doctrine2 with a symfony2.1 project. I have an entity that has a few many to one relationships to other tables. The foreign key relationships for these many-to-one's have already been updated in the database, but every time I run migrations:diff or schema:update --dump-sql it adds the same update commands to add the foreign key relationships again. When I run schema:validate it says my mapping is out of sync with my database.

My application works fine, the relationships are working properly, and the schema in my database looks correct. Why is doctrine still trying to add these foreign keys?

Here's my code (for one of the problematic parameters):

In my "Ticket" entity I have:

I currently have it set up to be one-directional, so there is no inversedBy in the User entity.

This generates the following in my migrations or schema:update dump even though it's in the database already:

Any idea what I'm doing wrong here?

0 投票
1 回答
5296 浏览

php - 学说迁移命名空间错误

我正在尝试在 silex 框架之上设置学说迁移。我通过作曲家安装了它。

我的控制台文件:

但是,当我运行 migrations:status 它输出:

我做错了什么?

0 投票
1 回答
1431 浏览

php - Doctrine Migrations 中的回滚问题

我使用 Symfony 2.3.1,我想用 DoctrineMigratios 部署我的数据库,但我在“up()”函数上遇到了一些问题。如果我尝试执行此示例:

我有一个错误(当然,是同一张表),但 DoctrineMigrations 没有执行回滚,最后我的数据库中有“用户”表。不知道是我的配置或项目的问题,还是 DoctrineMigrations 的错误。

有人可以帮助我吗?

0 投票
1 回答
366 浏览

php - 使用 Doctrine2 管理模式更改的工作流程

在开发过程中,我经常运行 Doctrine 的schema:update命令来将数据库模式与我不断变化的实体定义同步。一旦我准备好提交一个功能,我想将所有更改汇总到一个可以提交到 git的迁移类中。

问题是,为了运行,migrations:diff我需要将数据库模式回滚到我开始弄乱schema:update. 这样做schema:drop不好migrations:migrate,因为删除模式不会删除migration_versions表。这意味着在运行现有迁移并创建新迁移之前,我必须进入 MySQL 并手动删除所有数据库。

它有效,但感觉就像我做错了。有更好的想法吗?

0 投票
1 回答
291 浏览

symfony - 教义迁移找不到不存在的类

doc:generate-migrations-diff用来生成位于lib/migrations/. 您可能已经知道,doc:generate-migrations-...任务会在 tmp 目录中创建一些文件。我遇到了一些问题,我从 tmp 目录中删除了所有教义帮助文件。现在当我执行doc:generate-migrations-diff它失败并显示以下消息:Couldn't find class ToPrfxProduct2Site,我有Product2Site课,但没有ToPrfxProduct2Site。有任何想法吗?