Проблема в том, что я не могу изменить тип столбца на «Текст»
Это ошибка, которую я вижу:
DarkBook: детская площадка Justin $ rake migrate_up (в / Users /Джастин / Dropbox / Бизнес / Datamapper / площадка) ~ Начальная миграция == Выполнение миграции # 1: create_person_table CREATE TABLE people
(id
SERIAL PRIMARY KEY, name
VARCHAR (2), age
INTEGER) ENGINE =InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci -> 0,0112 с -> 0,0129 с == Выполнение миграции # 2: изменение_имя_ограничений rake прервано!неинициализированная константа SQL :: TableModifier :: Text /Users/Justin/Dropbox/Business/datamapper/playground/rakefile.rb:61:in `block (3 level) in '(полная трассировка выполняется путем запуска задачи с помощью --trace) RakeСценарий, который я использую для тестирования DataMapper: https://gist.github.com/818143 Это кажется , как будто метод change_column в классе TableModifier не преобразует корректно оператор изменения столбца в MySQL.Другие, казалось бы, связанные с этим ошибки заключаются в том, что, если я пытаюсь преобразовать столбец в строку более длинной длины, я получаю следующее: DarkBook: детская площадкаВыполнение миграции # 2: change_name_constraints
ALTER TABLE people
ALTER COLUMN name
TYPE String
~ У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом со строкой TYPE в строке 1 (код: 1064, состояние sql: 42000, запрос: ALTER TABLE people
ALTER COLUMN name
TYPE String, uri: mysql: // root: @ 127.0.0.1datamapper_test) рейк прерван!У вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом со строкой TYPE в строке 1
/ Users / Джастин / Dropbox / Business / datamapper / plays / rakefile.rb: 60: in`block (2 level) in '(полная трассировка выполняется путем запуска задачи с --trace)
Согласно тому, что я читал о MySQL," ALTER TABLE people
ALTER COLUMN name
TYPE String "не является допустимой командой запроса MySQL.ТИП не должен быть там, и String должен быть преобразован в VARCHAR.
Заглянув внутрь метода change_column, я вижу, что это просто прямой переход от типа, который я предоставляю.Это заставляет меня думать, что, возможно, я не должен вызывать метод change_column напрямую?
Как только я разобрался с этим, и я уже в пути, я документирую этот материал, поскольку выяснение того, что миграционный API DataMapper был адским.