mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 05:03:39 +08:00
FIX: base import script was not updating first_post_created_at column
FEATURE: new rake task to update first_post_created_at column The not-equal operator (`<>`) in PostgreSQL does not compare values with NULL. We should instead use `IS DISTINCT FROM` when comparing values with NULL.
This commit is contained in:
parent
2188ccccd5
commit
a93d24501c
|
@ -497,3 +497,22 @@ task 'import:file', [:file_name] => [:environment] do |_, args|
|
||||||
ImportExport.import(args[:file_name])
|
ImportExport.import(args[:file_name])
|
||||||
puts "", "Done", ""
|
puts "", "Done", ""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
desc "Update first_post_created_at column in user_stats table"
|
||||||
|
task "import:update_first_post_created_at" => :environment do
|
||||||
|
puts "", "Updating first_post_created_at..."
|
||||||
|
|
||||||
|
DB.exec <<~SQL
|
||||||
|
WITH sub AS (
|
||||||
|
SELECT user_id, MIN(posts.created_at) AS first_post_created_at
|
||||||
|
FROM posts
|
||||||
|
GROUP BY user_id
|
||||||
|
)
|
||||||
|
UPDATE user_stats
|
||||||
|
SET first_post_created_at = sub.first_post_created_at
|
||||||
|
FROM user_stats u1
|
||||||
|
JOIN sub ON sub.user_id = u1.user_id
|
||||||
|
WHERE u1.user_id = user_stats.user_id
|
||||||
|
AND user_stats.first_post_created_at IS DISTINCT FROM sub.first_post_created_at
|
||||||
|
SQL
|
||||||
|
end
|
||||||
|
|
|
@ -684,7 +684,7 @@ class ImportScripts::Base
|
||||||
FROM users u1
|
FROM users u1
|
||||||
JOIN lpa ON lpa.user_id = u1.id
|
JOIN lpa ON lpa.user_id = u1.id
|
||||||
WHERE u1.id = users.id
|
WHERE u1.id = users.id
|
||||||
AND users.last_posted_at <> lpa.last_posted_at
|
AND users.last_posted_at IS DISTINCT FROM lpa.last_posted_at
|
||||||
SQL
|
SQL
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -702,7 +702,7 @@ class ImportScripts::Base
|
||||||
FROM user_stats u1
|
FROM user_stats u1
|
||||||
JOIN sub ON sub.user_id = u1.user_id
|
JOIN sub ON sub.user_id = u1.user_id
|
||||||
WHERE u1.user_id = user_stats.user_id
|
WHERE u1.user_id = user_stats.user_id
|
||||||
AND user_stats.first_post_created_at <> sub.first_post_created_at
|
AND user_stats.first_post_created_at IS DISTINCT FROM sub.first_post_created_at
|
||||||
SQL
|
SQL
|
||||||
|
|
||||||
puts "", "Updating user post_count..."
|
puts "", "Updating user post_count..."
|
||||||
|
|
Loading…
Reference in New Issue
Block a user