尝试在我的
postgres
项目中设置 mariadb
和 symfony 6
来迁移我的数据库。
按照指南这里
我的实体称为
User
所以我在
doctrine.yaml
设置了两个数据库
doctrine:
dbal:
default_connection: mariadb
connections:
mariadb:
server_version: '%env(DATABASE_VERSION)%'
dbname: '%env(DATABASE_NAME)%'
host: '%env(DATABASE_HOST)%'
port: '%env(DATABASE_PORT)%'
user: '%env(DATABASE_USER)%'
password: '%env(DATABASE_PASSWORD)%'
driver: '%env(DATABASE_DRIVER)%'
charset: UTF8
options:
!php/const PDO::MYSQL_ATTR_SSL_KEY: '%DATABASE_PUB_KEY%'
!php/const PDO::MYSQL_ATTR_SSL_CERT: '%DATABASE_PRIV_KEY%'
!php/const PDO::MYSQL_ATTR_SSL_CA: '%DATABASE_CA_CERT%'
!php/const PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT: false
postgres:
server_version: '15'
dbname: 'mr_dev'
host: 'postgres'
port: '5432'
user: '%env(DATABASE_USER)%'
password: '%env(DATABASE_PASSWORD)%'
driver: 'pdo_pgsql'
charset: UTF8
orm:
default_entity_manager: mariadb
entity_managers:
mariadb:
connection: mariadb
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
dql:
numeric_functions:
rand: DoctrineExtensions\Query\Mysql\Rand
postgres:
connection: postgres
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
和
doctrine_migrations.yaml
doctrine_migrations:
em: 'mariadb'
migrations_paths:
'DoctrineMigrations': '%kernel.project_dir%/migrations'
enable_profiler: '%kernel.debug%'
然后我像这样访问:
use Doctrine\Persistence\ManagerRegistry;
ManagerRegistry $doctrine
$users = $doctrine->getRepository(User::class, 'mariadb')->findAll();
dump($users);
错误
Class 'App\Controller\home\User' does not exist
它正在查看错误的文件夹;我的实体位于
App\src\Entity\User.php