代码之家  ›  专栏  ›  技术社区  ›  Werner Echezuria

如何在RubyonRails中传递数据库运行时参数?

  •  1
  • Werner Echezuria  · 技术社区  · 15 年前

    我需要在PostgreSQL中设置一个运行时参数。它是“set datestyle to postgresql,european;”。在Rails应用程序中,我可以在哪里传递它?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Stephan Wehner    15 年前

    您不想为每个新连接使用“set datastyle”语句吗?那么初始值设定项不是正确的位置。

    我想你应该看看

    activeRecord::base.postgresql_连接

    ConnectionAdapters::PostgresqlAdapter配置连接(私有)

    这张罚单有一个针对MySQL世界中类似问题的补丁:

    可能有助于您查找正确的文件。

    另一方面,设置环境变量pgdatestyle可能更容易,请参见

    www.postgresql.org/docs/8.2/static/datatype-datetime.html

    在第8.5.2节末尾。日期/时间输出”它说 “用户可以使用set datestyle命令、postgresql.conf配置文件中的datestyle参数或服务器或客户机上的pgdatestyle环境变量选择日期/时间样式。对字符的格式化功能(参见第9.8节)也可以作为更灵活的方式来格式化日期/时间输出。”

    在服务器或客户机上。

    斯蒂芬

        2
  •  2
  •   mtyaka    15 年前

    初始值设定项将是一个适当的位置来执行该操作:

    # config/initializers/set_datestyle.rb
    
    ActiveRecord::Base.connection.execute 'SET DATESTYLE TO PostgreSQL,European;'
    
        3
  •  0
  •   Jeff Paquette    15 年前

    你试过了吗? ActiveRecord#execute ?它允许您将任意SQL发送到数据库:

    connection.execute("SET DATESTYLE TO PostgreSQL,European;")
    

    我不确定你是否需要分号。