加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

symfony – 数据库故障 – 数据库模式与当前映射文件不同步

发布时间:2020-12-12 16:26:20 所属栏目:MsSql教程 来源:网络整理
导读:任何人都可以解释以下doctrine架构验证错误消息: 以下是manyToMany关系中每个实体的yaml ORM定义,与documentation的第5.9节内联创建. RepBundleProjectBundleEntityUser: type: entity table: User fields: id: id: true type: integer unsigned: true n
任何人都可以解释以下doctrine架构验证错误消息:

以下是manyToMany关系中每个实体的yaml ORM定义,与documentation的第5.9节内联创建.

RepBundleProjectBundleEntityUser:
    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配置:

RepBundleProjectBundleEntityUserRole:
    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: {  }

这是User表架构:

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;

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

解决方法

运行php bin / console doctrine:schema:update –dump-sql将显示SQL中的差异而不必转储db.

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

php bin / console doctrine:schema:update –force –full-database

对于symfony2它是

php app / console doctrine:schema:update –force –full-database

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读