我知道通常当我们想要改变rails数据库中表的一列时。但现在我想对我的项目表和示例表做一个大的更改。实现这一目标的最佳途径是什么?本来
projects table:
class CreateProjects < ActiveRecord::Migration[6.0]
def change
create_table :projects do |t|
t.string :name
t.string :project_id1
t.string :project_id2
t.text :curated_description
t.integer :num_of_samples
t.integer :num_of_runs
t.integer :population
t.text :related_publications
t.text :original_description
t.timestamps
end
end
end
样品表:
class CreateSamples < ActiveRecord::Migration[6.0]
def change
create_table :samples do |t|
t.string :sample_name
t.string :project_name
t.string :run_id
t.string :second_run_id
t.string :meta_project_id
t.string :experiment_type
t.string :nr_reads_sequenced
t.string :instrument_model
t.string :disease_phenotype
t.string :is_disease_stage_available
t.string :disease_stage
t.text :more
t.text :more_info
t.string :country
t.string :collection_date
t.string :sex
t.integer :host_age
t.string :diet
t.string :longitude
t.string :lattitude
t.float :BMI
t.string :associated_phenotype
t.string :QC_status
t.text :recent_antibiotics_use
t.text :antibiotics_used
t.text :antibiotics_dose
t.integer :days_without_antibiotics_use
t.text :original_description
t.text :curated_description
t.references :project, null: false, foreign_key: true
t.timestamps
end
end
end
这两个迁移文件是我的迁移文件中最早的两个文件。首先,我想删除这两个文件(还有一个与这两个表相关的连接表,我也删除了它),并且我已经运行了数据库迁移来删除它们。但是,当我想使用
rails generate migration createProjects
它告诉我,有一个冲突,因为我们已经有一个名为xxx_creat_projects的文件,我知道这是我创建的最早的一个,但我已经创建了迁移删除旧表,现在我如何创建一个新的项目和样本表。或者最好有人能告诉我如何实现这一点(对这些表进行大的更改,因为我必须更改很多列)。谢谢!
1条答案
按热度按时间rsaldnfx1#
首先,您需要通过运行以下命令创建迁移文件:
然后编辑迁移文件并添加更改方法定义,如下所示: