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

问题描述 投票:0回答:1

我想通过此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);
ruby-on-rails postgresql postgis database-migration seed
1个回答
2
投票

您应该创建一个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
© www.soinside.com 2019 - 2024. All rights reserved.