Не могли бы вы попробовать добавить что-то вроде ниже и проверить еще раз,
module.exports.math = () => {
return {
add: (num1, num2) => {
return num1 * num2;
},
square: (num) => {
return num * num;
}
};
};
Не опускайте столбец, он очистит данные.
Однако вы можете попробовать
change_column :people, :company_id, :integer
, и если все значения в company_id
можно преобразовать в integer
, все будет хорошо.
Если это не так (то есть не все строки могут быть преобразованы по умолчанию), то вы можете сделать это в два этапа: 1) создать новый столбец, а затем загрузить company_id
туда после некоторого преобразования. 2) удалите company_id, затем переименуйте новый столбец.
Вы должны быть осторожны с обоими методами (в особенности со вторым), и, возможно, вам следует сначала сделать это с копией базы данных.
Не опускайте столбец, используйте это
change_column :table_name, :column_name, 'integer USING CAST(column_name AS integer)'
«Подсказка», которую вы получили от PostgreSQL, в основном говорит вам, что вам нужно подтвердить, что вы хотите, чтобы это произошло, и как данные должны быть преобразованы. Чтобы подтвердить изменения, используйте блок выше в вашей миграции
Другие ответы верны, но вы можете сделать еще один шаг с ключевым словом :using
:
change_column :people, :company_id, :integer, using: 'company_id::integer'