我想通过此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