gpt4 book ai didi

symfony - 数据库失败 - 数据库架构与当前映射文件不同步

转载 作者:行者123 更新时间:2023-12-02 09:00:24 26 4
gpt4 key购买 nike

任何人都可以解释以下 Doctrine 模式验证错误消息吗:

The error message returned by the schema validate function

这里是多对多关系中每个实体的 yaml ORM 定义,是根据 documentation 的第 5.9 节内联创建的。 .

Rep\Bundle\ProjectBundle\Entity\User:
type: entity
table: User
fields:
id:
id: true
type: integer
unsigned: true
nullable: false
generator:
strategy: AUTO
username:
type: string
length: 25
fixed: false
nullable: false
salt:
type: string
length: 32
fixed: false
nullable: false
password:
type: string
length: 40
fixed: false
nullable: false
email:
type: string
length: 60
fixed: false
nullable: false
manyToMany:
roles:
targetEntity: UserRole
inversedBy: users
joinTable:
name: UserRoleLookup
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
user_role_id:
referencedColumnName: id
lifecycleCallbacks: { }

以及 UserRole 反向 yaml 配置:

Rep\Bundle\ProjectBundle\Entity\UserRole:
type: entity
table: UserRole
fields:
id:
id: true
type: integer
unsigned: true
nullable: false
generator:
strategy: AUTO
name:
type: string
length: 50
fixed: false
nullable: false
manyToMany:
users:
targetEntity: User
mappedBy: roles
lifecycleCallbacks: { }

这是用户表架构:

CREATE TABLE `User` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`salt` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

UserRole 表架构:

CREATE TABLE `UserRole` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

以及 UserRoleLookup 架构:

CREATE TABLE `UserRoleLookup` (
`user_id` int(11) unsigned NOT NULL,
`user_role_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`user_id`,`user_role_id`),
KEY `user_role_id` (`user_role_id`),
CONSTRAINT `userrolelookup_ibfk_2` FOREIGN KEY (`user_role_id`) REFERENCES `userrole` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `userrolelookup_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

正如您所看到的,这是一个非常简单的设置,带有一个查找表来指示用户的角色或给定用户角色中的用户集。但是,我收到了这个令人沮丧的同步错误。我在这里或网上没有读到任何简洁详细地回答这个问题的内容,我希望有人能够澄清我是否可以安全地离开此配置并忽略此错误?

最佳答案

运行此命令以显示 SQL 中的差异,而无需转储数据库:

php bin/console Doctrine :schema:update --dump-sql

您还可以运行以下命令来执行更改:

php bin/console Doctrine :schema:update --force --full-database

对于 symfony2 来说是

php 应用程序/控制台 Doctrine :schema:update --force --full-database

关于symfony - 数据库失败 - 数据库架构与当前映射文件不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com