運用サーバーにデプロイ中にこのエラーが発生します。 同じ Ruby 移行ファイルをステージング サーバーで実行したところ、正常に動作しましたが、実稼働リリースでは次のようなエラーが発生しました。
01 /usr/local/rvm/bin/rvm 3.2.0 do bundle exec rake db:migrate
01 DEPRECATION WARNING: axlsx_rails has been renamed to caxlsx_rails. See http://github.com/caxlsx
01 /var/www/new_zdm/shared/bundle/ruby/3.2.0/gems/activerecord-sqlserver-adapter-7.0.2.0/lib/active_record/connection_adapters/sqlserver_adapter.rb:111: warning: unde…
01 == 20230621013249 CreateTenpoContractDetails: migrating =======================
01 -- create_table(:tenpo_contract_details)
01 rake aborted!
01 StandardError: An error has occurred, this and all later migrations canceled:
01
01 TinyTds::Error: Column, parameter, or variable #6: Cannot specify a column width on data type datetime.`
運用サーバーにデプロイ中にこのエラーが発生します。 同じ Ruby 移行ファイルをステージング サーバーで実行したところ、正常に動作しましたが、実稼働リリースでは次のようなエラーが発生しました。
class CreateTenpoContractDetails < ActiveRecord::Migration[7.0]
def change
create_table :tenpo_contract_details do |t|
t.string :payment_payee
t.datetime :tenpo_start_date
t.datetime :tenpo_end_date
t.datetime :next_yoyaku_date
t.datetime :tenpo_open_date
t.datetime :tenpo_agreement_date
t.datetime :contract_expiration_date
t.datetime :contract_start_period
t.datetime :contract_end_period
t.integer :total_contract_period
t.integer :revise_number_of_year
t.datetime :condition_revision_schedule_date
t.timestamps
end
end
end
誰か助けてくれませんか?
同様の問題に関する多くのリンクを検索しましたが、解決策が見つかりませんでした。
Rubyのバージョン:3.2.0 レールのバージョン: 7
最近同様のことを経験しましたが、その行で精度を指定することでそれを回避できることがわかりました。
...
t.datetime :tenpo_agreement_date, precision: 6
...
データベースが精度をサポートしていない場合は、値が nil になることもあります。
https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://guides.rubyonrails.org/active_record_migrations.html#column-modifiers