使用Ruby on Rails创建一个新数据库

时间:2012-09-01 16:43:53

标签: mysql ruby-on-rails-3

有没有办法在ROR应用程序中自动创建新数据库。

我要做的是为每个注册我网站的新用户创建一个新数据库。因此,如果新用户注册成功,将创建一个包含一些空表的新数据库。

新用户将获得一个新数据库,并且新数据库内部将是相同的表,但每个用户将存储的信息将是不同的。

我认为我需要这个的原因是因为如果用户不再想要使用我的系统我可以向他们提供他们存储在我的数据库中的信息,然后轻松地删除数据库和表格

我正在寻找的东西就像php

中的mysql_create_db()

2 个答案:

答案 0 :(得分:0)

你不认为你制作一个简单的系统复杂吗?你的思维方式是不可扩展的。例如,如果您有数千个用户,则必须创建相同数量的数据库表!大多数表可能没用。这绝对是荒谬的......

如果您只想实现以下目标

  • 每个用户都有自己的数据。
  • 用户可能想要导出数据。
  • 如果用户关闭了他的帐户,您将删除他的所有数据

然后您最好将整体视为具有单个数据库的单个应用程序。相应地设计您的数据库,并更好地寻找实现该数据库的最佳DRY实践。

答案 1 :(得分:0)

这不是将用户存储在关系数据库中的好方法,尤其是在使用像依赖的轨道上的ruby这样的应用程序框架时,通过配置实现以下约定。

拥有一个用户模型并使用Devise然后使用Cancan gems来管理角色和权限。没有必要在这里重新发明轮子,这正是它将要做的事情。

如果还有其他考虑因素,如尺寸或性能,请详细说明。你给出的理由(易于管理)并不是走这条路的好理由。

这是一个有趣的想法,并且在其他领域有用,但对于您的标准用户表来说真的不太好。