php - Symfony:学说进程 d:s:u 但数据库没有变化

标签 php mysql symfony doctrine-orm

当我这样做时:

app/console d:s:u --dump-sql

它告诉我

ALTER TABLE coupon ADD CONSTRAINT FK_64BF3F02A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE;

没关系,所以我尝试执行:

app/console d:s:u --dump-sql --force

它告诉我:

ALTER TABLE coupon ADD CONSTRAINT FK_64BF3F02A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE;

Updating database schema...
Database schema updated successfully! "1" queries were executed

我尝试检查是否一切正常并执行:

app/console d:s:u --dump-sql

它再次向我展示:

ALTER TABLE coupon ADD CONSTRAINT FK_64BF3F02A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE;

可能是什么问题?我没有错误,但也没有结果。

在 mysql 进行所有操作后创建表:

CREATE TABLE `coupon` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(255) NOT NULL DEFAULT '',
  `months` tinyint(1) NOT NULL,
  `billed` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Require CC details or not',
  `email` varchar(255) DEFAULT NULL,
  `first_name` varchar(255) DEFAULT NULL,
  `last_name` varchar(255) DEFAULT NULL,
  `user_id` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `used_at` datetime DEFAULT NULL,
  `expired_at` datetime DEFAULT NULL,
  `deleted` tinyint(1) NOT NULL DEFAULT '0',
  `multiuser` tinyint(1) NOT NULL DEFAULT '0',
  `days` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `IDX_64BF3F02A76ED395` (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=7154 DEFAULT CHARSET=utf8

最佳答案

问题是您在表中使用的引擎。 MyISAM 无法存储外键,MySQL 只是默默地忽略任何尝试添加外键的 SQL。 我建议一般使用 InnoDB 作为所有列的引擎(参见 MyISAM versus InnoDB 了解差异)

ALTER TABLE `coupon` ENGINE = InnoDB ;

然后就可以再次执行外键sql了

ALTER TABLE `coupon` 
ADD CONSTRAINT `FK_64BF3F02A76ED395`
FOREIGN KEY (`user_id`)
REFERENCES `user` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE;

关于php - Symfony:学说进程 d:s:u 但数据库没有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110917/

相关文章:

php - 不正确的 PHP 时间 - 45 年前的 echo

php - 如何从 mysql 结果中选择第一个和最后一个数据行?

php - 将查询字符串转换为关联数组

mysql - SQL简化特色功能?或数据透视表?

php - 如何在 symfony 中编写自定义查询

Symfony 2.7 使用 VichUploaderBundle 在 Twig 中渲染图像

php - 显示 mysql 查询的内容,只有第一个字段有效

MySQL 查询到 pSQL 查询(日期到 NULL)

php - 归档一些具有继承性的实体

symfony - Doctrine php7+ 类型提示,代理声明错误