我如何进行 rails 迁移和 rails 种子

How can I do a rails migration and rails seed

我想用这个 postgresql 查询做一个 rails 迁移和一个 rails 种子。我该怎么做?

DROP TABLE IF EXISTS grid_light;
  CREATE TABLE grid_light AS
  SELECT DISTINCT g.ogc_fid AS id, g.geog4326 AS geog
  FROM grid g, tracks t
  WHERE t.path_buff_geog && g.geog4326 AND ST_Intersects(t.path_buff_geog, g.geog4326);

您应该创建一个 rake 任务(exp: 在您的 lib/task 中创建 grids.rake

namespace :grids do
  desc 'explain your rake here'
  task create_grid: :environment do
    drop_sql_cmd = <<-SQL
      DROP TABLE IF EXISTS grid_light;
    SQL

    create_sql_cmd = <<-SQL
      CREATE TABLE grid_light AS
      SELECT DISTINCT g.ogc_fid AS id, g.geog4326 AS geog
      FROM grid g, tracks t
      WHERE t.path_buff_geog && g.geog4326 AND ST_Intersects(t.path_buff_geog, g.geog4326);
    SQL
    ActiveRecord::Base.transaction do
      ActiveRecord::Base.connection.execute(drop_sql_cmd)
      ActiveRecord::Base.connection.execute(create_sql_cmd)
    end
  end
end


如果调用 rake 为

bundle exec rake grids:create_grid