Tag: 数据库

Rails,PostgreSQL和历史触发器

所以… 我正在通过类似的东西添加由触发器填充的历史表,以便在我的项目中进行审计。 execute <<-SQL CREATE OR REPLACE FUNCTION process_history_table() RETURNS TRIGGER AS $history_table$ BEGIN IF (TG_OP = 'DELETE') THEN INSERT INTO history_table VALUES (DEFAULT, 'D', now(), OLD.*); RETURN OLD; ELSIF (TG_OP = 'UPDATE') THEN INSERT INTO history_table VALUES (DEFAULT, 'U', now(), NEW.*); RETURN NEW; ELSIF (TG_OP = 'INSERT') THEN INSERT INTO history_table VALUES (DEFAULT, 'I', […]

Rails db:migrate关系不存在

我有这样的模特: 学生: class Student < ActiveRecord::Base has_many :participations, dependent: :destroy has_many :subject_item_notes, dependent: :destroy has_many :payments, dependent: :destroy has_many :subject_items, dependent: :destroy, through: :participations has_many :subject_items, dependent: :destroy validates :first_name, :last_name, presence: true accepts_nested_attributes_for :subject_items end 和subject_item: class SubjectItem (teacher) { where(‘teacher_id IS ? or teacher_id = ?’, nil, teacher) } end 和迁移: class AddStudentToSubjectItems […]

更新非规范化数据库表

我正在使用Ruby on Rails 3.0.7和MySQL 5.在我的应用程序中,我有两个数据库表,比如TABLE1和TABLE2,并且出于性能原因,我已经在TABLE2中对一些数据进行了非规范化,因此我在那一个中​​重复了TABLE1的值。 现在,在TABLE1中,我需要更新一些涉及的值,当然,我必须正确更新TABLE2中的非规范化值。 我能做些什么来以高效的方式更新这些值? 也就是说,如果TABLE2包含很多值(1.000.000或更多),那么保持更新两个表(技术,实践,……)的最佳方法是什么? 在更新数据库表所花费的时间内会发生什么? 例如,用户在加入某些涉及非规范化值的网站页面时会遇到一些问题? 如果是这样,那些是什么以及如何处理这种情况?

created_at和updated_at列来自哪里?

由rails应用程序创建的数据库中的所有表似乎都有created_at和updated_at列。 什么创造了这些? 它们是可选的,还是内部依赖它们?

rake db:create generated“如果你手动设置字符集,请确保你有匹配的排序规则”错误

我在版本2.3.8中获得了一个rails项目。 当我试图运行rake db:create时,发生以下错误。 Couldn’t create database for {“encoding”=>”utf8”, “username”=>”root”, “adapter”=>”mysql”, “database”=>”claims_test”, “host”=>”localhost”, “password”=>”root”, “socket”=>”/var/run/mysqld/mysqld.sock”}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation) 我手动创建了DB并尝试运行该应用程序。 现在我收到了这个错误。 /!\ FAILSAFE /!\ Tue May 10 20:38:48 +0530 2011 Status: 500 Internal Server Error uninitialized constant MysqlCompat::MysqlRes 我尝试了Webrick和mongrel,这似乎是同样的原因。

如何获取数据库中的原始’created_at’值(不是转换为ActiveSupport :: TimeWithZone的对象)

想象一下,我有一个Post Model。 并且数据库中的一条记录将是: 23|title_here|content_here|2011-02-20 08:01:55.583222|2011-02-20 08:01:55.583222 最后两个字段( 2011-02-20 08:01:55.583222|2011-02-20 08:01:55.583222 )是created_at和updated_at字段。 然后, post = Post.find_by_id(23) 问题 :如何在数据库中获取created_at字符串:“ 2011-02-20 08:01:55.583222 ”? 我们知道,post.created_at将返回一个ActiveSupport::TimeWithZone对象,而不是原始字符串。 请帮忙 :)

在Ruby on Rails中自动增加非主键字段

在RoR迁移中,如何自动增加非主键字段? 我想在db定义中执行此操作,而不是在模型中执行此操作。

我应该使用多个数据库吗?

我即将使用Ruby on Rails创建一个应用程序,我想使用多个数据库,基本上是一个会计应用程序,每个用户将拥有多个公司。 我想为每家公司创建一个数据库 我发现这篇文章http://programmerassist.com/article/302但我想阅读更多关于这个问题的想法。 我必须在MySQL和PosgreSQL之间做出决定,哪个数据库可能更适合我的问题。

如何在Rails中加入多角色,多组织表

我正试图找到一个对我来说并不那么明显的导轨设计的解决方案。 一个对这些东西非常好的朋友给了我他的看法,但是我想知道是否有轨道模式 – 我缺少的知识是rails如何创建关系… 我有这样的问题空间。 用户可以在多个组织中执行多个角色。 因此,例如,用户既可以是组织1的“标准用户”,也可以是“高级用户”,但可以是组织2的“管理员”。 我正在使用Devise和CanCan。 我有一个Users表,Roles和一个Organizations表以及一个roles_users表来管理这种多对多关系。 然后我有一个user_organisations表,它存储用户和组织之间的M2M。 一切正常。 当我这样做; user = User.new({ :email => ‘admin@example.com’, :password => ‘password’, :password_confirmation => ‘password’, :firstname => ‘TestFirstName’, :surname => ‘TestSurName’}) org1 = Org.new({:fullname => ‘Test Org 1’}) org1.save org2 = Org.new({:fullname => ‘Test Org 2’}) org2.save user.org << Org.first user.org << Org.last user.roles <‘administrator’).first user.roles […]

从heroku下载部分数据库

我使用postgresql作为其数据库在heroku上托管了一个ruby on rails应用程序。 由于数据库变得越来越大,我想知道是否有一种方法只能从heroku下载它的特定部分。 例如,是否可以仅下载一个特定表,或仅下载parent_id == x的行。