Я пытаюсь применить следующую миграцию:Как сделать столбцы временной метки поддержки doctrine?
Schema::table('users', function (Blueprint $table) {
$table->timestamp('created_at')->useCurrent()->change();
});
Но artisan
говорит:
[Doctrine\DBAL\DBALException]
Unknown column type "timestamp" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL
\Types\Type::addType(). You can get a list of all the known types with \Doctrine\DBAL\Types\Type::getTypesMap(). I
f this error occurs during database introspection then you might have forgot to register all database types for a
Doctrine Type. Use AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement Type#getMapp
edDatabaseTypes(). If the type name is empty you might have a problem with the cache or forgot some mapping inform
ation.
Когда я пытаюсь установить mmerian/doctrine-timestamp
(composer install mmerian/doctrine-timestamp
), composer
говорит:
[InvalidArgumentException]
Could not find package mmerian/doctrine-timestamp at any version for your minimum-stability (stable). Check the pa
ckage spelling or your minimum-stability
Что я делаю?
UPD С composer require mmerian/doctrine-timestamp=dev-master
, я был в состоянии установить пакет, а затем добавил Type::addType('timestamp', 'DoctrineTimestamp\DBAL\Types\Timestamp');
перед тем Schema::table
заявление, но теперь у меня есть другая ошибка:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'created_at' (SQL: ALTER TABLE u
sers CHANGE created_at created_at INT DEFAULT 'CURRENT_TIMESTAMP' NOT NULL)
UPD я снова проверил если он работает с mmerian/doctrine-timestamp
, так как я добавил только первый из линий от Документов тогда (или документ был обновлен):
Type::addType('timestamp', 'DoctrineTimestamp\DBAL\Types\Timestamp');
DB::getDoctrineConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('Timestamp', 'timestamp');
Но это тоже не помогает. Миграция завершается успешно, но определение столбца не изменяется.
Пожалуйста, покажите ваш 'composer.json' – maximkou
Вы можете вручную добавить https://github.com/mmerian/doctrine-timestamp/blob/ master/lib/DoctrineTimestamp/DBAL/Types/Timestamp.php для вашего проекта –