Ruby on rails 是否可以在rails中不迁移rails g的情况下将数据库字段添加到现有数据库表中

Ruby on rails 是否可以在rails中不迁移rails g的情况下将数据库字段添加到现有数据库表中,ruby-on-rails,postgresql,database-migration,Ruby On Rails,Postgresql,Database Migration,我是RubyonRails新手,所以我对Rails迁移有些困惑 我想在我的用户表中添加一个字段,根据rails文档,只有使用 rails generate migration add_field_name_to_table_name field_name: type 问题 如果不在rails中进行rails g迁移,是否可以向现有数据库表中添加字段?谢谢…更大的问题是你为什么需要这样做。我的意思是,无论什么让你认为你需要这样做都是错误的(假设你是rails的新用户,我对此很有信心)。这就像你

我是RubyonRails新手,所以我对Rails迁移有些困惑

我想在我的用户表中添加一个字段,根据rails文档,只有使用

rails generate migration add_field_name_to_table_name field_name: type

问题


如果不在rails中进行rails g迁移,是否可以向现有数据库表中添加字段?谢谢…

更大的问题是你为什么需要这样做。我的意思是,无论什么让你认为你需要这样做都是错误的(假设你是rails的新用户,我对此很有信心)。这就像你离开飞机时,没有理由徒步长途飞行一样

回答:

您可以通过以下方式实现:

  • 手动登录Postgres,如
    rails db

  • 然后以SQL方式手动创建表

  • 然后在
    schema.rb
    文件中手动添加具有正确列的表

  • 然后手动创建模型

每次将此项目克隆到其他任何地方时,您仍然必须重复此操作,没有错误窗口。另一方面,使用迁移,您只需要执行
railsdb:migrate


愉快的编码。

是的,您可以打开DBMS(Postgres、MySQL等),然后运行SQL命令添加该字段。如果这样做,您将丢失Rails为您提供的所有数据库功能,例如,您不能再运行
Rails db:migrate
,因为该字段将丢失。因此,如果其他人加入您的团队,您必须为他们提供数据库的模式,以便他们拥有相同的东西。您还将丢失数据库版本控制等。因此,我建议您继续使用Rails迁移。感谢@fanta的解释