You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hanami 2.0搭配Sequel执行Rake迁移时DATABASE_URL找不到的问题

解决Hanami 2.0 + Sequel迁移时KeyError找不到DATABASE_URL的问题
  • 确保Rake任务加载Hanami环境
    Rake默认不会自动接入Hanami的配置体系,需要在Rakefile开头添加环境加载代码,让Rake能读取到Hanami的配置和.env变量:

    require_relative "config/boot"
    Hanami.boot
    
  • 从Hanami Settings获取数据库连接
    迁移任务里不要直接读取ENV["DATABASE_URL"],而是通过Hanami的settings对象获取——Hanami已经完成了.env变量的加载和类型校验,能保证配置的正确性:

    namespace :db do
      task :migrate do
        db = Sequel.connect(Hanami.app["settings"].database_url)
        # 执行迁移操作,例如:
        # Sequel::Migrator.run(db, "db/migrate")
      end
    end
    
  • 验证Settings配置正确性
    检查config/settings.rb里是否正确定义了database_url配置项,替换成你的实际应用名称:

    module YourAppName
      class Settings < Hanami::Settings
        setting :database_url, constructor: Types::String
      end
    end
    
  • 测试环境加载状态
    可以临时写一个测试Rake任务,确认是否能正常读取数据库URL:

    task :check_db_url do
      require_relative "config/boot"
      Hanami.boot
      puts "Database URL: #{Hanami.app["settings"].database_url}"
    end
    

    执行rake check_db_url,如果能输出正确的URL,说明环境加载正常,再运行迁移任务就不会出现变量找不到的错误。

内容的提问来源于stack exchange,提问作者thiebo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:10:32