出于调试目的,我想知道我的一些postgres模式何时可以创建?
从PostgreSQL和公寓文档中搜索,但没有找到任何有用的线索。
我使用的环境和工具:
+---------------+----------+
| Tools | Version |
+--------------------------+
| PostgreSQL | 9.4.1 |
| Ruby | 2.2.1p85 |
| Ruby on Rails | 4.1.9 |
| Apartment gem | 0.26.1 |
+---------------+----------+
如您所见,我使用Apartment在我的多租户rails应用程序中创建模式。
答案 0 :(得分:1)
PostgreSQL系统目录不存储创建数据库对象的日期。您可以配置PostgreSQL以记录每个SQL语句(log_statement setting)或多或少,但您必须事先做到这一点。
答案 1 :(得分:1)
您可以创建event trigger并将此事件的日期存储在表格中。可以找到示例here
答案 2 :(得分:0)
我发布" Rails方式"解决方案不适用于以前制作的模式,但不适用于新模式。
rails g model Tenant name:string
为租户模型添加after_create callback
class Tenant < ActiveRecord::Base
after_create :tenant_moves_in
private
def tenant_moves_in
Apartment::Tenant.create self.name
end
对于前。为租户创建一些脚本或使用租户模型的ActiveRecord CRUD能力直接与您的应用中的租户一起操作,如Tenant.create(name: 'new_tenant')
。
那么你可以在db tenants表中创建与Apartment Tenants相关的created_at和updated_at日期,它们代表postgres模式。
当然,您应该避免使用像Apartment::Tenant.create 'new_tenant'
这样的Aparmtent工具来租户,因为这不会创建租户模型对象,因此不会保留created_at时间。
答案 3 :(得分:-1)
Disclamer:这回答了对问题的错误解释。 我保留它,以防它对某人有用......
当您使用rake db:migrate
运行Ruby on Rails迁移时,rails会维护一个文件,向您显示数据库结构的快照。此文件位于db/schema.rb
。
以下是rails添加created_at
的表的示例:
create_table "comments", force: true do |t|
t.integer "user_id"
t.integer "article_id"
t.text "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "origin", default: "web"
end
此处有更多详情: http://edgeguides.rubyonrails.org/active_record_migrations.html