问题
I have been trying to set TIMESTAMP DEFAULT CURRENT_TIMESTAMP default values for the table columns created_at and updated_at in my schema.yml as explained in this post.
System Info:
- Symfony 1.4.17, Doctrine 1
- MySQL 5.6.10
- PHP 5.4
Carefully read the columnDefinition documentation but couldnt get it to work. As stated in the documentation, columnDefinition attribute should be set after the name of the column. After making a migration of the database, the default values set in columnDefinition for those columns are not added to the MySQL Database.
Tested changing from type: timestamp to type: datetime, but datetime its not recognized and running a migrate up, shows an an error message. In the documentation all references about Timestamp type shows it should be declared as: timestamp
- http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/defining-models.html
- http://symfony.com/legacy/doc/doctrine/1_2/en/04-Schema-Files
- https://doctrine.readthedocs.org/en/latest/en/manual/introduction-to-models.html
Also tested adding a default value attribute for those columns, but its still not set in MySQL.
schema.yml:
Tbmdtest005:
connection: md_test
columns:
id:
type: integer(8)
fixed: false
unsigned: false
primary: true
autoincrement: true
actAs:
Timestampable:
created:
name: created_at
columnDefinition: TIMESTAMP DEFAULT CURRENT_TIMESTAMP
default: CURRENT_TIMESTAMP
type: timestamp
format: Y-m-d H:i:s
options:
notnull: false
required: false
updated:
name: updated_at
columnDefinition: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
default: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
type: timestamp
format: Y-m-d H:i:s
options:
notnull: false
required: false
MySQL table: tbmdtest005 created in the database after the migration:
CREATE TABLE `tbmdtest005` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
Questions:
- Is something wrong in my schema.yml?
- Please could you provide a working example?
来源:https://stackoverflow.com/questions/17208388/symfony-1-4-doctrine-1-yaml-cannot-define-default-timestamp-value