Как получить доктрину для генерации sql с типом BIGINT? - PullRequest
3 голосов
/ 16 мая 2011

В моей схеме есть несколько полей, которые должны быть БОЛЬШИМИ. Я использую Symfony's

symfony doctrine:build-sql

для создания моей базы данных.

Поля всегда имеют тип int.

Я пробовал следующие типы в схеме:

int

{type: integer, notnull: true}

{type: integer(5), notnull: true}

{type: bigint, notnull: true}

Кажется, ни один из них не работает (я всегда перестраиваю модель перед сборкой SQL).

Какой тип я должен поместить в schema.yml?

Ответы [ 3 ]

15 голосов
/ 14 октября 2013

С Symfony 2.x (например, Doctrine 2.4.1) и аннотациями PHP для сущностей, использование @ORM\Column(name="id", type="bigint") приводит к MySQL bigint(20).

Примечание: OP пометил этот вопрос как symfony1 & doctrine1,для которого это решение не будет работать .

5 голосов
/ 16 мая 2011

Это зависит от вашей СУБД, но если вы используете MySQL, вы можете прочитать lib / plugins / sfDoctrinePlugin / lib / vendor / doctrine / Doctrine / DataDict / Mysql.php

    case 'integer':
    case 'int':
            if ( ! empty($field['length'])) {
                $length = $field['length'];
                if ($length <= 1) {
                    return 'TINYINT';
                } elseif ($length == 2) {
                    return 'SMALLINT';
                } elseif ($length == 3) {
                    return 'MEDIUMINT';
                } elseif ($length == 4) {
                    return 'INT';
                } elseif ($length > 4) {
                    return 'BIGINT';
                }
            }
            return 'INT';

, поэтому ваша вторая попыткадолжен был работать ... или вы используете другую RDBMS?Вы должны установить точку останова в этой строке кода и выполнить пошаговую отладку, это странно.Кроме того, проверьте содержимое вашего файла Mysql.php, чтобы увидеть, есть ли у вас то же, что и у меня (я использую учение, поставляемое с sf 1.4.11)

0 голосов
/ 17 мая 2011

да, целое число (5) должно делать работу.

Вы можете проверить другие типы данных схемы в Книга Symfony и Doctrine , но имейте в виду, что это версия 1.2 и она больше не поддерживается.

С уважением.

...