Как я могу сделать рельсы миграции и рельсов семян - PullRequest
0 голосов
/ 22 января 2020

Я бы хотел выполнить миграцию рельсов и начисление рельсов с помощью этого запроса postgresql. Как я могу это сделать?

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);

1 Ответ

2 голосов
/ 22 января 2020

Вы должны создать задачу rake (exp: create grids.rake в вашей lib / task)

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
...