symfony – Doctrine2忽略数据库表
发布时间:2020-12-12 16:56:15 所属栏目:MsSql教程 来源:网络整理
导读:我使用的是Doctrine 2,我想生成一个我的数据库的ORM,但是我不想选择db的所有表. 例如,在这个db: 表1没有主键 表2正常 我想用这个命令选择只有表2: doctrine:mapping:convert --from-database yml ./src/Application/TestBundle/Resources/config/doctrine/m
我使用的是Doctrine 2,我想生成一个我的数据库的ORM,但是我不想选择db的所有表.
例如,在这个db: >表1没有主键 我想用这个命令选择只有表2: doctrine:mapping:convert --from-database yml ./src/Application/TestBundle/Resources/config/doctrine/metadata/orm --filter="Table2" 我有一个错误:
好的,我知道,但我不希望我的表1在我的ORM. 当我的表1有主键我可以过滤表… 如何解决这个问题? 我看到这个: 但它不行. 我回答我的问题 在你的配置中:config.yml,添加schema_filter,在我的情况下: schema_filter: ~^(?!Table1)~ 解决方法如果您使用Doctrine2没有Symfony,那么您应该将此行添加到您的引导:// With this expression all tables prefixed with Table1 will ignored by the schema tool. $entityManager->getConnection()->getConfiguration()->setFilterSchemaAssetsExpression("~^(?!Table1)~"); 整个bootstrap看起来像 <?php // bootstrap.php use DoctrineORMToolsSetup; use DoctrineORMEntityManager; // Include Composer Autoload (relative to project root). require_once "vendor/autoload.php"; // Create a simple "default" Doctrine ORM configuration for Annotations $isDevMode = true; $paths = array(__DIR__."/doctrine/entities"); $config = Setup::createAnnotationMetadataConfiguration($paths,$isDevMode); //$config = Setup::createYAMLMetadataConfiguration(array(__DIR__."/doctrine/yaml"),$isDevMode); // the connection configuration $dbParams = array( 'driver' => 'pdo_mysql','user' => 'username','password' => 'password','dbname' => 'database',); /** @var $entityManager DoctrineORMEntityManager */ $entityManager = EntityManager::create($dbParams,$config); // Set the other connections parameters $conn = $entityManager->getConnection(); $platform = $conn->getDatabasePlatform(); $platform->registerDoctrineTypeMapping('enum','string'); // With this expression all tables prefixed with t_ will ignored by the schema tool. $conn->getConfiguration()->setFilterSchemaAssetsExpression("~^(?!t__)~"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |