3

MySQL 提供了一系列存储引擎,其中一个是内存存储引擎,它是一种内存选项。

如何配置 Symfony2 应用程序来告诉它告诉 PDO 告诉 MySQL 使用内存存储引擎?

我想在两种情况下这样做。首先,我想为测试环境执行此操作,以便在每个单元测试之前拆除和重建数据库是一个更快的操作。其次,我想将此应用于数据相对瞬态的 Symfony2 应用程序,因此在断电时是否所有数据都丢失并不重要。

鉴于以下示例应用程序配置 (app/config/parameters.yml),我需要进行哪些更改才能使用内存存储引擎?

parameters:
    database_driver: pdo_mysql
    database_host: localhost
    database_port: null
    database_name: example
    database_user: user
    database_password: password
4

1 回答 1

2

您实际上可以使用以下内容指定每个表的引擎类型:

@Table(name="table_name",options={"engine"="memory"})

这适用于您的瞬态生产表。

要获得依赖于环境的东西(即仅测试)需要更多的工作。您可以通过动态修改元数据来做到这一点。关于这样做的几个线程。

遗憾的是,symfony 没有全局 mysql 引擎属性。至少据我所知。

于 2013-07-30T14:47:53.213 回答