2013-12-16 09:46:46 +08:00
User . reset_column_information
Topic . reset_column_information
Post . reset_column_information
2014-07-25 02:27:34 +08:00
staff = Category . find_by ( id : SiteSetting . staff_category_id )
2014-07-30 02:30:23 +08:00
seed_welcome_topics = ( Topic . where ( 'id NOT IN (SELECT topic_id from categories where topic_id is not null)' ) . count == 0 && ! Rails . env . test? )
2014-07-25 02:27:34 +08:00
unless Rails . env . test?
def create_static_page_topic ( site_setting_key , title_key , body_key , body_override , category , description , params = { } )
unless SiteSetting . send ( site_setting_key ) > 0
2014-07-29 03:04:14 +08:00
creator = PostCreator . new ( Discourse . system_user ,
2014-07-25 02:27:34 +08:00
title : I18n . t ( title_key , default : I18n . t ( title_key , locale : :en ) ) ,
raw : body_override . present? ? body_override : I18n . t ( body_key , params . merge ( default : I18n . t ( body_key , params . merge ( locale : :en ) ) ) ) ,
skip_validations : true ,
category : category ? category . name : nil )
2014-07-29 03:04:14 +08:00
post = creator . create
2014-07-25 02:27:34 +08:00
2014-07-29 03:04:14 +08:00
raise " Failed to create the #{ description } topic! #{ creator . errors . full_messages . join ( '. ' ) } " if creator . errors . present?
2014-07-25 02:27:34 +08:00
SiteSetting . send ( " #{ site_setting_key } = " , post . topic_id )
reply = PostCreator . create ( Discourse . system_user ,
raw : I18n . t ( 'static_topic_first_reply' , page_name : I18n . t ( title_key , default : I18n . t ( title_key , locale : :en ) ) ) ,
skip_validations : true ,
topic_id : post . topic_id )
end
end
create_static_page_topic ( 'tos_topic_id' , 'tos_topic.title' , " tos_topic.body " , nil , staff , " terms of service " , {
2014-12-04 04:39:53 +08:00
company_domain : " company_domain " ,
company_full_name : " company_full_name " ,
company_name : " company_short_name "
2014-07-25 02:27:34 +08:00
} )
2015-11-24 05:45:05 +08:00
create_static_page_topic ( 'guidelines_topic_id' , 'guidelines_topic.title' , " guidelines_topic.body " , nil , staff , " guidelines " )
2014-07-25 02:27:34 +08:00
2015-11-24 05:45:05 +08:00
create_static_page_topic ( 'privacy_topic_id' , 'privacy_topic.title' , " privacy_topic.body " , nil , staff , " privacy policy " )
2014-07-25 02:27:34 +08:00
end
2014-07-30 02:30:23 +08:00
if seed_welcome_topics
puts " Seeding welcome topics "
2014-08-18 16:51:44 +08:00
PostCreator . create ( Discourse . system_user , raw : I18n . t ( 'assets_topic_body' ) , title : " Assets for the site design " , skip_validations : true , category : staff ? staff . name : nil )
2014-07-30 02:30:23 +08:00
welcome = File . read ( Rails . root + 'docs/WELCOME-TO-DISCOURSE.md' )
post = PostCreator . create ( Discourse . system_user , raw : welcome , title : " Welcome to Discourse " , skip_validations : true )
post . topic . update_pinned ( true , true )
lounge = Category . find_by ( id : SiteSetting . lounge_category_id )
if lounge
post = PostCreator . create ( Discourse . system_user , raw : I18n . t ( 'lounge_welcome.body' ) , title : I18n . t ( 'lounge_welcome.title' ) , skip_validations : true , category : lounge . name )
post . topic . update_pinned ( true )
end
2015-06-05 03:56:17 +08:00
filename = DiscoursePluginRegistry . seed_data [ " admin_quick_start_filename " ]
if filename . nil? || ! File . exists? ( filename )
filename = Rails . root + 'docs/ADMIN-QUICK-START-GUIDE.md'
end
welcome = File . read ( filename )
PostCreator . create ( Discourse . system_user ,
raw : welcome ,
title : DiscoursePluginRegistry . seed_data [ " admin_quick_start_title " ] || " READ ME FIRST: Admin Quick Start Guide " ,
skip_validations : true ,
category : staff ? staff . name : nil )
2014-07-30 02:30:23 +08:00
end
2016-12-05 09:11:46 +08:00
# run this later, cause we need to make sure new application controller resilience is in place first
duration = Rails . env . production? ? 60 : 0
if Topic . exec_sql ( " SELECT 1 FROM schema_migration_details
WHERE EXISTS (
SELECT 1 FROM INFORMATION_SCHEMA . COLUMNS
WHERE table_schema = 'public' AND table_name = 'topics' AND column_name = 'inappropriate_count'
) AND
name = 'AddTopicColumnsBack' AND
created_at < ( current_timestamp at time zone 'UTC' - interval '#{duration} minutes' )
" ).to_a.length > 0
Topic . transaction do
STDERR . puts " Removing superflous topic columns! "
%w[
inappropriate_count
bookmark_count
off_topic_count
illegal_count
notify_user_count
] . each do | column |
User . exec_sql ( " ALTER TABLE topics DROP COLUMN IF EXISTS #{ column } " )
end
end
end