2f31d678d0
Adds two new features to collect and show useful analytics. Usage Statistics: * Begin tracking daily active users who log in and interact with major features of the website each day, such as the chat room, forum and gallery. Demographics page: * For marketing, the home page now shows live statistics about the breakdown of content (explicit vs. non-explicit) on the site, and the /insights page gives a lot more data in detail. * Show the percent split in photo gallery content and how many users opt-in or share explicit content on the site. * Show high-level demographics of the members (by age range, gender, orientation) Misc cleanup: * Rearrange model list in data export to match the auto-create statements. * In data exports, include the forum_memberships, push_notifications and usage_statistics tables.
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
// Package models handles the database.
|
|
package models
|
|
|
|
import "gorm.io/gorm"
|
|
|
|
// DB to be set by calling app (SQLite or Postgres connection).
|
|
var DB *gorm.DB
|
|
|
|
// AutoMigrate the schema.
|
|
func AutoMigrate() {
|
|
|
|
DB.AutoMigrate(
|
|
// User and user-generated data.
|
|
// ✔ = models are cleaned up on DeleteUser()
|
|
&AdminGroup{}, // ✔ admin_group_users
|
|
&Block{}, // ✔
|
|
&CertificationPhoto{}, // ✔
|
|
&ChangeLog{}, // ✔
|
|
&Comment{}, // ✔
|
|
&CommentPhoto{}, // ✔
|
|
&Feedback{}, // ✔
|
|
&ForumMembership{}, // ✔
|
|
&Friend{}, // ✔
|
|
&IPAddress{}, // ✔
|
|
&Like{}, // ✔
|
|
&Message{}, // ✔
|
|
&Notification{}, // ✔
|
|
&ProfileField{}, // ✔
|
|
&Photo{}, // ✔
|
|
&PollVote{}, // keep their vote on polls
|
|
&Poll{}, // vacuum script cleans up orphaned polls
|
|
&PrivatePhoto{}, // ✔
|
|
&PushNotification{}, // ✔
|
|
&Subscription{}, // ✔
|
|
&Thread{}, // ✔
|
|
&TwoFactor{}, // ✔
|
|
&UsageStatistic{}, // ✔
|
|
&User{}, // ✔
|
|
&UserLocation{}, // ✔
|
|
&UserNote{}, // ✔
|
|
|
|
// Non-user or persistent data.
|
|
&AdminScope{},
|
|
&Forum{},
|
|
|
|
// Vendor/misc data.
|
|
&WorldCities{},
|
|
)
|
|
}
|