alchemy-devise 3.6.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +32 -8
- data/Rakefile +8 -2
- data/app/models/alchemy/user.rb +2 -13
- data/db/migrate/20131015124700_create_alchemy_users.rb +1 -1
- data/db/migrate/20131225232042_add_alchemy_roles_to_alchemy_users.rb +1 -1
- data/db/migrate/20141209144532_add_indexes_to_alchemy_users.rb +1 -1
- data/lib/alchemy/devise.rb +35 -0
- data/lib/alchemy/devise/test_support/factories.rb +1 -1
- data/lib/alchemy/devise/version.rb +1 -1
- data/spec/controllers/admin/users_controller_spec.rb +29 -21
- data/spec/controllers/user_sessions_controller_spec.rb +21 -19
- data/spec/dummy/app/views/layouts/application.html.erb +2 -2
- data/spec/dummy/bin/rails +1 -5
- data/spec/dummy/bin/rake +0 -4
- data/spec/dummy/bin/rspec +0 -4
- data/spec/dummy/bin/setup +34 -0
- data/spec/dummy/bin/update +29 -0
- data/spec/dummy/config/application.rb +4 -14
- data/spec/dummy/config/boot.rb +3 -3
- data/spec/dummy/config/environment.rb +2 -2
- data/spec/dummy/config/environments/development.rb +24 -11
- data/spec/dummy/config/environments/production.rb +24 -17
- data/spec/dummy/config/environments/test.rb +6 -6
- data/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +2 -0
- data/spec/dummy/config/initializers/new_framework_defaults.rb +25 -0
- data/spec/dummy/config/initializers/session_store.rb +1 -1
- data/spec/dummy/config/initializers/wrap_parameters.rb +2 -2
- data/spec/dummy/config/puma.rb +47 -0
- data/spec/dummy/config/routes.rb +1 -1
- data/spec/dummy/config/secrets.yml +3 -3
- data/spec/dummy/db/migrate/20131018201539_alchemy_two_point_six.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20131018201540_remove_do_not_index_from_alchemy_essence_texts.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20131018201541_remove_do_not_index_from_alchemy_essence_richtexts.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20141119205155_add_published_at_to_alchemy_pages.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20141119205156_add_missing_unique_indices_to_tags_and_taggings.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20141119205157_add_taggings_counter_cache_to_tags.alchemy.rb +2 -2
- data/spec/dummy/db/migrate/20141119205158_add_missing_taggable_index.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20160322214808_add_parent_element_id_to_alchemy_elements.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20160322214809_add_link_text_to_alchemy_essence_files.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20160518190421_add_locale_to_alchemy_languages.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20160518190425_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +1 -1
- data/spec/dummy/db/migrate/20160518190426_add_missing_unique_indices.acts_as_taggable_on_engine.rb +1 -1
- data/spec/dummy/db/migrate/20160518190427_change_collation_for_tag_names.acts_as_taggable_on_engine.rb +1 -1
- data/spec/dummy/db/migrate/20160614164602_add_timebased_publishing_columns_to_pages.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20160614164603_add_image_file_format_to_alchemy_pictures.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20160627081901_change_alchemy_pages_locked_to_locked_at.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20161106124022_add_index_to_alchemy_pages_rgt.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20161106124023_add_foreign_key_indices_and_null_constraints.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20161106124024_add_foreign_keys.alchemy.rb +1 -1
- data/spec/dummy/db/migrate/20161106124026_add_missing_indexes.acts_as_taggable_on_engine.rb +1 -1
- data/spec/dummy/db/schema.rb +233 -250
- data/spec/requests/admin/users_controller_request_spec.rb +2 -2
- data/spec/spec_helper.rb +6 -2
- metadata +23 -18
- data/spec/dummy/bin/spring +0 -18
@@ -5,16 +5,16 @@
|
|
5
5
|
|
6
6
|
# Make sure the secret is at least 30 characters and all random,
|
7
7
|
# no regular words or you'll be exposed to dictionary attacks.
|
8
|
-
# You can use `
|
8
|
+
# You can use `rails secret` to generate a secure secret key.
|
9
9
|
|
10
10
|
# Make sure the secrets in this file are kept private
|
11
11
|
# if you're sharing your code publicly.
|
12
12
|
|
13
13
|
development:
|
14
|
-
secret_key_base:
|
14
|
+
secret_key_base: 1aadd3efcd27a3772eac3607400eba35431fc1eebfd9db42265ee857af58fb2a665f361d17d0949baf1fc0f343d236ddd99818a5d9bce1182488eda81a44f94a
|
15
15
|
|
16
16
|
test:
|
17
|
-
secret_key_base:
|
17
|
+
secret_key_base: 763d24b544ba24c491eb39d687da11dd16ac69d7f450bad903a35890fbd0fdf4077c9259527d107ff388a78c130775b383fe1db8143e1f0579ed62a6b14dda5f
|
18
18
|
|
19
19
|
# Do not keep production secrets in the repository,
|
20
20
|
# instead read values from the environment.
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# In order to upgrade from an old version of Alchemy, you have to run all migrations from
|
7
7
|
# each version you missed up to the version you want to upgrade to, before running this migration.
|
8
8
|
#
|
9
|
-
class AlchemyTwoPointSix < ActiveRecord::Migration
|
9
|
+
class AlchemyTwoPointSix < ActiveRecord::Migration[4.2]
|
10
10
|
def up
|
11
11
|
# Do not run if Alchemy tables are already present
|
12
12
|
return if table_exists?(:alchemy_pages)
|
data/spec/dummy/db/migrate/20131018201540_remove_do_not_index_from_alchemy_essence_texts.alchemy.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20130828121054)
|
2
|
-
class RemoveDoNotIndexFromAlchemyEssenceTexts < ActiveRecord::Migration
|
2
|
+
class RemoveDoNotIndexFromAlchemyEssenceTexts < ActiveRecord::Migration[4.2]
|
3
3
|
def up
|
4
4
|
remove_column :alchemy_essence_texts, :do_not_index
|
5
5
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20130828121120)
|
2
|
-
class RemoveDoNotIndexFromAlchemyEssenceRichtexts < ActiveRecord::Migration
|
2
|
+
class RemoveDoNotIndexFromAlchemyEssenceRichtexts < ActiveRecord::Migration[4.2]
|
3
3
|
def up
|
4
4
|
remove_column :alchemy_essence_richtexts, :do_not_index
|
5
5
|
end
|
data/spec/dummy/db/migrate/20141119205156_add_missing_unique_indices_to_tags_and_taggings.alchemy.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20140107192720)
|
2
|
-
class AddMissingUniqueIndicesToTagsAndTaggings < ActiveRecord::Migration
|
2
|
+
class AddMissingUniqueIndicesToTagsAndTaggings < ActiveRecord::Migration[4.2]
|
3
3
|
|
4
4
|
def self.up
|
5
5
|
add_index :tags, :name, unique: true
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20140701160159)
|
2
|
-
class AddTaggingsCounterCacheToTags < ActiveRecord::Migration
|
2
|
+
class AddTaggingsCounterCacheToTags < ActiveRecord::Migration[4.2]
|
3
3
|
def self.up
|
4
4
|
add_column :tags, :taggings_count, :integer, default: 0
|
5
5
|
|
@@ -12,4 +12,4 @@ class AddTaggingsCounterCacheToTags < ActiveRecord::Migration
|
|
12
12
|
def self.down
|
13
13
|
remove_column :tags, :taggings_count
|
14
14
|
end
|
15
|
-
end
|
15
|
+
end
|
data/spec/dummy/db/migrate/20160322214808_add_parent_element_id_to_alchemy_elements.alchemy.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20150608204610)
|
2
|
-
class AddParentElementIdToAlchemyElements < ActiveRecord::Migration
|
2
|
+
class AddParentElementIdToAlchemyElements < ActiveRecord::Migration[4.2]
|
3
3
|
def change
|
4
4
|
add_column :alchemy_elements, :parent_element_id, :integer
|
5
5
|
add_index :alchemy_elements, [:page_id, :parent_element_id]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20150729151825)
|
2
|
-
class AddLinkTextToAlchemyEssenceFiles < ActiveRecord::Migration
|
2
|
+
class AddLinkTextToAlchemyEssenceFiles < ActiveRecord::Migration[4.2]
|
3
3
|
def change
|
4
4
|
add_column :alchemy_essence_files, :link_text, :string
|
5
5
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from acts_as_taggable_on_engine (originally 1)
|
2
|
-
class ActsAsTaggableOnMigration < ActiveRecord::Migration
|
2
|
+
class ActsAsTaggableOnMigration < ActiveRecord::Migration[4.2]
|
3
3
|
def self.up
|
4
4
|
# inserted by Alchemy CMS upgrader
|
5
5
|
return if table_exists?(:tags)
|
data/spec/dummy/db/migrate/20160518190426_add_missing_unique_indices.acts_as_taggable_on_engine.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from acts_as_taggable_on_engine (originally 2)
|
2
|
-
class AddMissingUniqueIndices < ActiveRecord::Migration
|
2
|
+
class AddMissingUniqueIndices < ActiveRecord::Migration[4.2]
|
3
3
|
def self.up
|
4
4
|
# inserted by Alchemy CMS upgrader
|
5
5
|
return if index_exists?(:tags, :name)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# This migration comes from acts_as_taggable_on_engine (originally 5)
|
2
2
|
# This migration is added to circumvent issue #623 and have special characters
|
3
3
|
# work properly
|
4
|
-
class ChangeCollationForTagNames < ActiveRecord::Migration
|
4
|
+
class ChangeCollationForTagNames < ActiveRecord::Migration[4.2]
|
5
5
|
def up
|
6
6
|
if ActsAsTaggableOn::Utils.using_mysql?
|
7
7
|
execute("ALTER TABLE tags MODIFY name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin;")
|
data/spec/dummy/db/migrate/20160614164602_add_timebased_publishing_columns_to_pages.alchemy.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20160108174834)
|
2
|
-
class AddTimebasedPublishingColumnsToPages < ActiveRecord::Migration
|
2
|
+
class AddTimebasedPublishingColumnsToPages < ActiveRecord::Migration[4.2]
|
3
3
|
def up
|
4
4
|
add_column :alchemy_pages, :public_on, :datetime
|
5
5
|
add_column :alchemy_pages, :public_until, :datetime
|
data/spec/dummy/db/migrate/20160614164603_add_image_file_format_to_alchemy_pictures.alchemy.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20160422195310)
|
2
|
-
class AddImageFileFormatToAlchemyPictures < ActiveRecord::Migration
|
2
|
+
class AddImageFileFormatToAlchemyPictures < ActiveRecord::Migration[4.2]
|
3
3
|
def up
|
4
4
|
add_column :alchemy_pictures, :image_file_format, :string
|
5
5
|
|
data/spec/dummy/db/migrate/20160627081901_change_alchemy_pages_locked_to_locked_at.alchemy.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20160617224938)
|
2
|
-
class ChangeAlchemyPagesLockedToLockedAt < ActiveRecord::Migration
|
2
|
+
class ChangeAlchemyPagesLockedToLockedAt < ActiveRecord::Migration[4.2]
|
3
3
|
def up
|
4
4
|
add_column :alchemy_pages, :locked_at, :datetime
|
5
5
|
update <<-SQL.strip_heredoc
|
data/spec/dummy/db/migrate/20161106124023_add_foreign_key_indices_and_null_constraints.alchemy.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# This migration comes from alchemy (originally 20160927205604)
|
2
|
-
class AddForeignKeyIndicesAndNullConstraints < ActiveRecord::Migration
|
2
|
+
class AddForeignKeyIndicesAndNullConstraints < ActiveRecord::Migration[4.2]
|
3
3
|
def change
|
4
4
|
change_column_null :alchemy_cells, :page_id, false, 0
|
5
5
|
change_column_null :alchemy_contents, :element_id, false, 0
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
# This file is auto-generated from the current state of the database. Instead
|
3
2
|
# of editing this file, please use the migrations feature of Active Record to
|
4
3
|
# incrementally modify your database, and then regenerate this schema definition.
|
@@ -14,356 +13,340 @@
|
|
14
13
|
ActiveRecord::Schema.define(version: 20161106124026) do
|
15
14
|
|
16
15
|
create_table "alchemy_attachments", force: :cascade do |t|
|
17
|
-
t.string
|
18
|
-
t.string
|
19
|
-
t.string
|
20
|
-
t.integer
|
21
|
-
t.integer
|
22
|
-
t.integer
|
23
|
-
t.datetime "created_at",
|
24
|
-
t.datetime "updated_at",
|
25
|
-
t.text
|
26
|
-
t.string
|
16
|
+
t.string "name"
|
17
|
+
t.string "file_name"
|
18
|
+
t.string "file_mime_type"
|
19
|
+
t.integer "file_size"
|
20
|
+
t.integer "creator_id"
|
21
|
+
t.integer "updater_id"
|
22
|
+
t.datetime "created_at", null: false
|
23
|
+
t.datetime "updated_at", null: false
|
24
|
+
t.text "cached_tag_list"
|
25
|
+
t.string "file_uid"
|
26
|
+
t.index ["file_uid"], name: "index_alchemy_attachments_on_file_uid"
|
27
27
|
end
|
28
28
|
|
29
|
-
add_index "alchemy_attachments", ["file_uid"], name: "index_alchemy_attachments_on_file_uid"
|
30
|
-
|
31
29
|
create_table "alchemy_cells", force: :cascade do |t|
|
32
|
-
t.integer
|
33
|
-
t.string
|
30
|
+
t.integer "page_id", null: false
|
31
|
+
t.string "name"
|
34
32
|
t.datetime "created_at", null: false
|
35
33
|
t.datetime "updated_at", null: false
|
34
|
+
t.index ["page_id"], name: "index_alchemy_cells_on_page_id"
|
36
35
|
end
|
37
36
|
|
38
|
-
add_index "alchemy_cells", ["page_id"], name: "index_alchemy_cells_on_page_id"
|
39
|
-
|
40
37
|
create_table "alchemy_contents", force: :cascade do |t|
|
41
|
-
t.string
|
42
|
-
t.string
|
43
|
-
t.integer
|
44
|
-
t.integer
|
45
|
-
t.integer
|
46
|
-
t.datetime "created_at",
|
47
|
-
t.datetime "updated_at",
|
48
|
-
t.integer
|
49
|
-
t.integer
|
38
|
+
t.string "name"
|
39
|
+
t.string "essence_type", null: false
|
40
|
+
t.integer "essence_id", null: false
|
41
|
+
t.integer "element_id", null: false
|
42
|
+
t.integer "position"
|
43
|
+
t.datetime "created_at", null: false
|
44
|
+
t.datetime "updated_at", null: false
|
45
|
+
t.integer "creator_id"
|
46
|
+
t.integer "updater_id"
|
47
|
+
t.index ["element_id", "position"], name: "index_contents_on_element_id_and_position"
|
48
|
+
t.index ["essence_id", "essence_type"], name: "index_alchemy_contents_on_essence_id_and_essence_type", unique: true
|
50
49
|
end
|
51
50
|
|
52
|
-
add_index "alchemy_contents", ["element_id", "position"], name: "index_contents_on_element_id_and_position"
|
53
|
-
add_index "alchemy_contents", ["essence_id", "essence_type"], name: "index_alchemy_contents_on_essence_id_and_essence_type", unique: true
|
54
|
-
|
55
51
|
create_table "alchemy_elements", force: :cascade do |t|
|
56
|
-
t.string
|
57
|
-
t.integer
|
58
|
-
t.integer
|
59
|
-
t.boolean
|
60
|
-
t.boolean
|
61
|
-
t.boolean
|
62
|
-
t.datetime "created_at",
|
63
|
-
t.datetime "updated_at",
|
64
|
-
t.integer
|
65
|
-
t.integer
|
66
|
-
t.integer
|
67
|
-
t.text
|
68
|
-
t.integer
|
52
|
+
t.string "name"
|
53
|
+
t.integer "position"
|
54
|
+
t.integer "page_id", null: false
|
55
|
+
t.boolean "public", default: true
|
56
|
+
t.boolean "folded", default: false
|
57
|
+
t.boolean "unique", default: false
|
58
|
+
t.datetime "created_at", null: false
|
59
|
+
t.datetime "updated_at", null: false
|
60
|
+
t.integer "creator_id"
|
61
|
+
t.integer "updater_id"
|
62
|
+
t.integer "cell_id"
|
63
|
+
t.text "cached_tag_list"
|
64
|
+
t.integer "parent_element_id"
|
65
|
+
t.index ["cell_id"], name: "index_alchemy_elements_on_cell_id"
|
66
|
+
t.index ["page_id", "parent_element_id"], name: "index_alchemy_elements_on_page_id_and_parent_element_id"
|
67
|
+
t.index ["page_id", "position"], name: "index_elements_on_page_id_and_position"
|
69
68
|
end
|
70
69
|
|
71
|
-
add_index "alchemy_elements", ["cell_id"], name: "index_alchemy_elements_on_cell_id"
|
72
|
-
add_index "alchemy_elements", ["page_id", "parent_element_id"], name: "index_alchemy_elements_on_page_id_and_parent_element_id"
|
73
|
-
add_index "alchemy_elements", ["page_id", "position"], name: "index_elements_on_page_id_and_position"
|
74
|
-
|
75
70
|
create_table "alchemy_elements_alchemy_pages", id: false, force: :cascade do |t|
|
76
71
|
t.integer "element_id"
|
77
72
|
t.integer "page_id"
|
78
73
|
end
|
79
74
|
|
80
75
|
create_table "alchemy_essence_booleans", force: :cascade do |t|
|
81
|
-
t.boolean
|
76
|
+
t.boolean "value"
|
82
77
|
t.datetime "created_at", null: false
|
83
78
|
t.datetime "updated_at", null: false
|
84
|
-
t.integer
|
85
|
-
t.integer
|
79
|
+
t.integer "creator_id"
|
80
|
+
t.integer "updater_id"
|
81
|
+
t.index ["value"], name: "index_alchemy_essence_booleans_on_value"
|
86
82
|
end
|
87
83
|
|
88
|
-
add_index "alchemy_essence_booleans", ["value"], name: "index_alchemy_essence_booleans_on_value"
|
89
|
-
|
90
84
|
create_table "alchemy_essence_dates", force: :cascade do |t|
|
91
85
|
t.datetime "date"
|
92
|
-
t.integer
|
93
|
-
t.integer
|
86
|
+
t.integer "creator_id"
|
87
|
+
t.integer "updater_id"
|
94
88
|
t.datetime "created_at", null: false
|
95
89
|
t.datetime "updated_at", null: false
|
96
90
|
end
|
97
91
|
|
98
92
|
create_table "alchemy_essence_files", force: :cascade do |t|
|
99
|
-
t.integer
|
100
|
-
t.string
|
101
|
-
t.string
|
102
|
-
t.integer
|
103
|
-
t.integer
|
104
|
-
t.datetime "created_at",
|
105
|
-
t.datetime "updated_at",
|
106
|
-
t.string
|
93
|
+
t.integer "attachment_id"
|
94
|
+
t.string "title"
|
95
|
+
t.string "css_class"
|
96
|
+
t.integer "creator_id"
|
97
|
+
t.integer "updater_id"
|
98
|
+
t.datetime "created_at", null: false
|
99
|
+
t.datetime "updated_at", null: false
|
100
|
+
t.string "link_text"
|
101
|
+
t.index ["attachment_id"], name: "index_alchemy_essence_files_on_attachment_id"
|
107
102
|
end
|
108
103
|
|
109
|
-
add_index "alchemy_essence_files", ["attachment_id"], name: "index_alchemy_essence_files_on_attachment_id"
|
110
|
-
|
111
104
|
create_table "alchemy_essence_htmls", force: :cascade do |t|
|
112
|
-
t.text
|
113
|
-
t.integer
|
114
|
-
t.integer
|
105
|
+
t.text "source"
|
106
|
+
t.integer "creator_id"
|
107
|
+
t.integer "updater_id"
|
115
108
|
t.datetime "created_at", null: false
|
116
109
|
t.datetime "updated_at", null: false
|
117
110
|
end
|
118
111
|
|
119
112
|
create_table "alchemy_essence_links", force: :cascade do |t|
|
120
|
-
t.string
|
121
|
-
t.string
|
122
|
-
t.string
|
123
|
-
t.string
|
124
|
-
t.datetime "created_at",
|
125
|
-
t.datetime "updated_at",
|
126
|
-
t.integer
|
127
|
-
t.integer
|
113
|
+
t.string "link"
|
114
|
+
t.string "link_title"
|
115
|
+
t.string "link_target"
|
116
|
+
t.string "link_class_name"
|
117
|
+
t.datetime "created_at", null: false
|
118
|
+
t.datetime "updated_at", null: false
|
119
|
+
t.integer "creator_id"
|
120
|
+
t.integer "updater_id"
|
128
121
|
end
|
129
122
|
|
130
123
|
create_table "alchemy_essence_pictures", force: :cascade do |t|
|
131
|
-
t.integer
|
132
|
-
t.string
|
133
|
-
t.string
|
134
|
-
t.string
|
135
|
-
t.string
|
136
|
-
t.string
|
137
|
-
t.string
|
138
|
-
t.string
|
139
|
-
t.string
|
140
|
-
t.integer
|
141
|
-
t.integer
|
142
|
-
t.datetime "created_at",
|
143
|
-
t.datetime "updated_at",
|
144
|
-
t.string
|
145
|
-
t.string
|
146
|
-
t.string
|
124
|
+
t.integer "picture_id"
|
125
|
+
t.string "caption"
|
126
|
+
t.string "title"
|
127
|
+
t.string "alt_tag"
|
128
|
+
t.string "link"
|
129
|
+
t.string "link_class_name"
|
130
|
+
t.string "link_title"
|
131
|
+
t.string "css_class"
|
132
|
+
t.string "link_target"
|
133
|
+
t.integer "creator_id"
|
134
|
+
t.integer "updater_id"
|
135
|
+
t.datetime "created_at", null: false
|
136
|
+
t.datetime "updated_at", null: false
|
137
|
+
t.string "crop_from"
|
138
|
+
t.string "crop_size"
|
139
|
+
t.string "render_size"
|
140
|
+
t.index ["picture_id"], name: "index_alchemy_essence_pictures_on_picture_id"
|
147
141
|
end
|
148
142
|
|
149
|
-
add_index "alchemy_essence_pictures", ["picture_id"], name: "index_alchemy_essence_pictures_on_picture_id"
|
150
|
-
|
151
143
|
create_table "alchemy_essence_richtexts", force: :cascade do |t|
|
152
|
-
t.text
|
153
|
-
t.text
|
154
|
-
t.boolean
|
155
|
-
t.integer
|
156
|
-
t.integer
|
157
|
-
t.datetime "created_at",
|
158
|
-
t.datetime "updated_at",
|
144
|
+
t.text "body"
|
145
|
+
t.text "stripped_body"
|
146
|
+
t.boolean "public"
|
147
|
+
t.integer "creator_id"
|
148
|
+
t.integer "updater_id"
|
149
|
+
t.datetime "created_at", null: false
|
150
|
+
t.datetime "updated_at", null: false
|
159
151
|
end
|
160
152
|
|
161
153
|
create_table "alchemy_essence_selects", force: :cascade do |t|
|
162
|
-
t.string
|
154
|
+
t.string "value"
|
163
155
|
t.datetime "created_at", null: false
|
164
156
|
t.datetime "updated_at", null: false
|
165
|
-
t.integer
|
166
|
-
t.integer
|
157
|
+
t.integer "creator_id"
|
158
|
+
t.integer "updater_id"
|
159
|
+
t.index ["value"], name: "index_alchemy_essence_selects_on_value"
|
167
160
|
end
|
168
161
|
|
169
|
-
add_index "alchemy_essence_selects", ["value"], name: "index_alchemy_essence_selects_on_value"
|
170
|
-
|
171
162
|
create_table "alchemy_essence_texts", force: :cascade do |t|
|
172
|
-
t.text
|
173
|
-
t.string
|
174
|
-
t.string
|
175
|
-
t.string
|
176
|
-
t.boolean
|
177
|
-
t.string
|
178
|
-
t.integer
|
179
|
-
t.integer
|
180
|
-
t.datetime "created_at",
|
181
|
-
t.datetime "updated_at",
|
163
|
+
t.text "body"
|
164
|
+
t.string "link"
|
165
|
+
t.string "link_title"
|
166
|
+
t.string "link_class_name"
|
167
|
+
t.boolean "public", default: false
|
168
|
+
t.string "link_target"
|
169
|
+
t.integer "creator_id"
|
170
|
+
t.integer "updater_id"
|
171
|
+
t.datetime "created_at", null: false
|
172
|
+
t.datetime "updated_at", null: false
|
182
173
|
end
|
183
174
|
|
184
175
|
create_table "alchemy_folded_pages", force: :cascade do |t|
|
185
|
-
t.integer "page_id",
|
186
|
-
t.integer "user_id",
|
187
|
-
t.boolean "folded",
|
176
|
+
t.integer "page_id", null: false
|
177
|
+
t.integer "user_id", null: false
|
178
|
+
t.boolean "folded", default: false
|
179
|
+
t.index ["page_id", "user_id"], name: "index_alchemy_folded_pages_on_page_id_and_user_id", unique: true
|
188
180
|
end
|
189
181
|
|
190
|
-
add_index "alchemy_folded_pages", ["page_id", "user_id"], name: "index_alchemy_folded_pages_on_page_id_and_user_id", unique: true
|
191
|
-
|
192
182
|
create_table "alchemy_languages", force: :cascade do |t|
|
193
|
-
t.string
|
194
|
-
t.string
|
195
|
-
t.string
|
196
|
-
t.string
|
197
|
-
t.boolean
|
198
|
-
t.datetime "created_at",
|
199
|
-
t.datetime "updated_at",
|
200
|
-
t.integer
|
201
|
-
t.integer
|
202
|
-
t.boolean
|
203
|
-
t.string
|
204
|
-
t.integer
|
205
|
-
t.string
|
183
|
+
t.string "name"
|
184
|
+
t.string "language_code"
|
185
|
+
t.string "frontpage_name"
|
186
|
+
t.string "page_layout", default: "intro"
|
187
|
+
t.boolean "public", default: false
|
188
|
+
t.datetime "created_at", null: false
|
189
|
+
t.datetime "updated_at", null: false
|
190
|
+
t.integer "creator_id"
|
191
|
+
t.integer "updater_id"
|
192
|
+
t.boolean "default", default: false
|
193
|
+
t.string "country_code", default: "", null: false
|
194
|
+
t.integer "site_id", null: false
|
195
|
+
t.string "locale"
|
196
|
+
t.index ["language_code", "country_code"], name: "index_alchemy_languages_on_language_code_and_country_code"
|
197
|
+
t.index ["language_code"], name: "index_alchemy_languages_on_language_code"
|
198
|
+
t.index ["site_id"], name: "index_alchemy_languages_on_site_id"
|
206
199
|
end
|
207
200
|
|
208
|
-
add_index "alchemy_languages", ["language_code", "country_code"], name: "index_alchemy_languages_on_language_code_and_country_code"
|
209
|
-
add_index "alchemy_languages", ["language_code"], name: "index_alchemy_languages_on_language_code"
|
210
|
-
add_index "alchemy_languages", ["site_id"], name: "index_alchemy_languages_on_site_id"
|
211
|
-
|
212
201
|
create_table "alchemy_legacy_page_urls", force: :cascade do |t|
|
213
|
-
t.string
|
214
|
-
t.integer
|
202
|
+
t.string "urlname", null: false
|
203
|
+
t.integer "page_id", null: false
|
215
204
|
t.datetime "created_at", null: false
|
216
205
|
t.datetime "updated_at", null: false
|
206
|
+
t.index ["page_id"], name: "index_alchemy_legacy_page_urls_on_page_id"
|
207
|
+
t.index ["urlname"], name: "index_alchemy_legacy_page_urls_on_urlname"
|
217
208
|
end
|
218
209
|
|
219
|
-
add_index "alchemy_legacy_page_urls", ["page_id"], name: "index_alchemy_legacy_page_urls_on_page_id"
|
220
|
-
add_index "alchemy_legacy_page_urls", ["urlname"], name: "index_alchemy_legacy_page_urls_on_urlname"
|
221
|
-
|
222
210
|
create_table "alchemy_pages", force: :cascade do |t|
|
223
|
-
t.string
|
224
|
-
t.string
|
225
|
-
t.string
|
226
|
-
t.string
|
227
|
-
t.boolean
|
228
|
-
t.string
|
229
|
-
t.text
|
230
|
-
t.text
|
231
|
-
t.integer
|
232
|
-
t.integer
|
233
|
-
t.integer
|
234
|
-
t.integer
|
235
|
-
t.boolean
|
236
|
-
t.integer
|
237
|
-
t.boolean
|
238
|
-
t.boolean
|
239
|
-
t.boolean
|
240
|
-
t.boolean
|
241
|
-
t.boolean
|
242
|
-
t.datetime "created_at",
|
243
|
-
t.datetime "updated_at",
|
244
|
-
t.integer
|
245
|
-
t.integer
|
246
|
-
t.integer
|
247
|
-
t.text
|
211
|
+
t.string "name"
|
212
|
+
t.string "urlname"
|
213
|
+
t.string "title"
|
214
|
+
t.string "language_code"
|
215
|
+
t.boolean "language_root"
|
216
|
+
t.string "page_layout"
|
217
|
+
t.text "meta_keywords"
|
218
|
+
t.text "meta_description"
|
219
|
+
t.integer "lft"
|
220
|
+
t.integer "rgt"
|
221
|
+
t.integer "parent_id"
|
222
|
+
t.integer "depth"
|
223
|
+
t.boolean "visible", default: false
|
224
|
+
t.integer "locked_by"
|
225
|
+
t.boolean "restricted", default: false
|
226
|
+
t.boolean "robot_index", default: true
|
227
|
+
t.boolean "robot_follow", default: true
|
228
|
+
t.boolean "sitemap", default: true
|
229
|
+
t.boolean "layoutpage", default: false
|
230
|
+
t.datetime "created_at", null: false
|
231
|
+
t.datetime "updated_at", null: false
|
232
|
+
t.integer "creator_id"
|
233
|
+
t.integer "updater_id"
|
234
|
+
t.integer "language_id"
|
235
|
+
t.text "cached_tag_list"
|
248
236
|
t.datetime "published_at"
|
249
237
|
t.datetime "public_on"
|
250
238
|
t.datetime "public_until"
|
251
239
|
t.datetime "locked_at"
|
240
|
+
t.index ["language_id"], name: "index_pages_on_language_id"
|
241
|
+
t.index ["locked_at", "locked_by"], name: "index_alchemy_pages_on_locked_at_and_locked_by"
|
242
|
+
t.index ["parent_id", "lft"], name: "index_pages_on_parent_id_and_lft"
|
243
|
+
t.index ["public_on", "public_until"], name: "index_alchemy_pages_on_public_on_and_public_until"
|
244
|
+
t.index ["rgt"], name: "index_alchemy_pages_on_rgt"
|
245
|
+
t.index ["urlname"], name: "index_pages_on_urlname"
|
252
246
|
end
|
253
247
|
|
254
|
-
add_index "alchemy_pages", ["language_id"], name: "index_pages_on_language_id"
|
255
|
-
add_index "alchemy_pages", ["locked_at", "locked_by"], name: "index_alchemy_pages_on_locked_at_and_locked_by"
|
256
|
-
add_index "alchemy_pages", ["parent_id", "lft"], name: "index_pages_on_parent_id_and_lft"
|
257
|
-
add_index "alchemy_pages", ["public_on", "public_until"], name: "index_alchemy_pages_on_public_on_and_public_until"
|
258
|
-
add_index "alchemy_pages", ["rgt"], name: "index_alchemy_pages_on_rgt"
|
259
|
-
add_index "alchemy_pages", ["urlname"], name: "index_pages_on_urlname"
|
260
|
-
|
261
248
|
create_table "alchemy_pictures", force: :cascade do |t|
|
262
|
-
t.string
|
263
|
-
t.string
|
264
|
-
t.integer
|
265
|
-
t.integer
|
266
|
-
t.datetime "created_at",
|
267
|
-
t.datetime "updated_at",
|
268
|
-
t.integer
|
269
|
-
t.integer
|
270
|
-
t.string
|
271
|
-
t.text
|
272
|
-
t.string
|
273
|
-
t.integer
|
274
|
-
t.string
|
249
|
+
t.string "name"
|
250
|
+
t.string "image_file_name"
|
251
|
+
t.integer "image_file_width"
|
252
|
+
t.integer "image_file_height"
|
253
|
+
t.datetime "created_at", null: false
|
254
|
+
t.datetime "updated_at", null: false
|
255
|
+
t.integer "creator_id"
|
256
|
+
t.integer "updater_id"
|
257
|
+
t.string "upload_hash"
|
258
|
+
t.text "cached_tag_list"
|
259
|
+
t.string "image_file_uid"
|
260
|
+
t.integer "image_file_size"
|
261
|
+
t.string "image_file_format"
|
275
262
|
end
|
276
263
|
|
277
264
|
create_table "alchemy_sites", force: :cascade do |t|
|
278
|
-
t.string
|
279
|
-
t.string
|
280
|
-
t.datetime "created_at",
|
281
|
-
t.datetime "updated_at",
|
282
|
-
t.boolean
|
283
|
-
t.text
|
284
|
-
t.boolean
|
265
|
+
t.string "host"
|
266
|
+
t.string "name"
|
267
|
+
t.datetime "created_at", null: false
|
268
|
+
t.datetime "updated_at", null: false
|
269
|
+
t.boolean "public", default: false
|
270
|
+
t.text "aliases"
|
271
|
+
t.boolean "redirect_to_primary_host"
|
272
|
+
t.index ["host", "public"], name: "alchemy_sites_public_hosts_idx"
|
273
|
+
t.index ["host"], name: "index_alchemy_sites_on_host"
|
285
274
|
end
|
286
275
|
|
287
|
-
add_index "alchemy_sites", ["host", "public"], name: "alchemy_sites_public_hosts_idx"
|
288
|
-
add_index "alchemy_sites", ["host"], name: "index_alchemy_sites_on_host"
|
289
|
-
|
290
276
|
create_table "alchemy_users", force: :cascade do |t|
|
291
|
-
t.string
|
292
|
-
t.string
|
293
|
-
t.string
|
294
|
-
t.string
|
295
|
-
t.string
|
296
|
-
t.string
|
297
|
-
t.string
|
298
|
-
t.string
|
299
|
-
t.integer
|
300
|
-
t.integer
|
277
|
+
t.string "firstname"
|
278
|
+
t.string "lastname"
|
279
|
+
t.string "login"
|
280
|
+
t.string "email"
|
281
|
+
t.string "gender"
|
282
|
+
t.string "language"
|
283
|
+
t.string "encrypted_password", limit: 128, default: "", null: false
|
284
|
+
t.string "password_salt", limit: 128, default: "", null: false
|
285
|
+
t.integer "sign_in_count", default: 0, null: false
|
286
|
+
t.integer "failed_attempts", default: 0, null: false
|
301
287
|
t.datetime "last_request_at"
|
302
288
|
t.datetime "current_sign_in_at"
|
303
289
|
t.datetime "last_sign_in_at"
|
304
|
-
t.string
|
305
|
-
t.string
|
306
|
-
t.datetime "created_at",
|
307
|
-
t.datetime "updated_at",
|
308
|
-
t.integer
|
309
|
-
t.integer
|
310
|
-
t.text
|
311
|
-
t.string
|
290
|
+
t.string "current_sign_in_ip"
|
291
|
+
t.string "last_sign_in_ip"
|
292
|
+
t.datetime "created_at", null: false
|
293
|
+
t.datetime "updated_at", null: false
|
294
|
+
t.integer "creator_id"
|
295
|
+
t.integer "updater_id"
|
296
|
+
t.text "cached_tag_list"
|
297
|
+
t.string "reset_password_token"
|
312
298
|
t.datetime "reset_password_sent_at"
|
313
|
-
t.string
|
299
|
+
t.string "alchemy_roles", default: "member"
|
300
|
+
t.index ["alchemy_roles"], name: "index_alchemy_users_on_alchemy_roles"
|
301
|
+
t.index ["email"], name: "index_alchemy_users_on_email", unique: true
|
302
|
+
t.index ["firstname"], name: "index_alchemy_users_on_firstname"
|
303
|
+
t.index ["lastname"], name: "index_alchemy_users_on_lastname"
|
304
|
+
t.index ["login"], name: "index_alchemy_users_on_login", unique: true
|
305
|
+
t.index ["reset_password_token"], name: "index_alchemy_users_on_reset_password_token", unique: true
|
314
306
|
end
|
315
307
|
|
316
|
-
add_index "alchemy_users", ["alchemy_roles"], name: "index_alchemy_users_on_alchemy_roles"
|
317
|
-
add_index "alchemy_users", ["email"], name: "index_alchemy_users_on_email", unique: true
|
318
|
-
add_index "alchemy_users", ["firstname"], name: "index_alchemy_users_on_firstname"
|
319
|
-
add_index "alchemy_users", ["lastname"], name: "index_alchemy_users_on_lastname"
|
320
|
-
add_index "alchemy_users", ["login"], name: "index_alchemy_users_on_login", unique: true
|
321
|
-
add_index "alchemy_users", ["reset_password_token"], name: "index_alchemy_users_on_reset_password_token", unique: true
|
322
|
-
|
323
308
|
create_table "events", force: :cascade do |t|
|
324
|
-
t.string
|
325
|
-
t.string
|
309
|
+
t.string "name"
|
310
|
+
t.string "hidden_name"
|
326
311
|
t.datetime "starts_at"
|
327
312
|
t.datetime "ends_at"
|
328
|
-
t.text
|
329
|
-
t.decimal
|
330
|
-
t.boolean
|
331
|
-
t.integer
|
332
|
-
t.datetime "created_at",
|
333
|
-
t.datetime "updated_at",
|
313
|
+
t.text "description"
|
314
|
+
t.decimal "entrance_fee", precision: 6, scale: 2
|
315
|
+
t.boolean "published"
|
316
|
+
t.integer "location_id"
|
317
|
+
t.datetime "created_at", null: false
|
318
|
+
t.datetime "updated_at", null: false
|
334
319
|
end
|
335
320
|
|
336
321
|
create_table "locations", force: :cascade do |t|
|
337
|
-
t.string
|
322
|
+
t.string "name"
|
338
323
|
t.datetime "created_at", null: false
|
339
324
|
t.datetime "updated_at", null: false
|
340
325
|
end
|
341
326
|
|
342
327
|
create_table "taggings", force: :cascade do |t|
|
343
|
-
t.integer
|
344
|
-
t.integer
|
345
|
-
t.string
|
346
|
-
t.integer
|
347
|
-
t.string
|
348
|
-
t.string
|
328
|
+
t.integer "tag_id"
|
329
|
+
t.integer "taggable_id"
|
330
|
+
t.string "taggable_type"
|
331
|
+
t.integer "tagger_id"
|
332
|
+
t.string "tagger_type"
|
333
|
+
t.string "context"
|
349
334
|
t.datetime "created_at"
|
335
|
+
t.index ["context"], name: "index_taggings_on_context"
|
336
|
+
t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
|
337
|
+
t.index ["tag_id"], name: "index_taggings_on_tag_id"
|
338
|
+
t.index ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
|
339
|
+
t.index ["taggable_id", "taggable_type", "tagger_id", "context"], name: "taggings_idy"
|
340
|
+
t.index ["taggable_id"], name: "index_taggings_on_taggable_id"
|
341
|
+
t.index ["taggable_type"], name: "index_taggings_on_taggable_type"
|
342
|
+
t.index ["tagger_id", "tagger_type"], name: "index_taggings_on_tagger_id_and_tagger_type"
|
343
|
+
t.index ["tagger_id"], name: "index_taggings_on_tagger_id"
|
350
344
|
end
|
351
345
|
|
352
|
-
add_index "taggings", ["context"], name: "index_taggings_on_context"
|
353
|
-
add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
|
354
|
-
add_index "taggings", ["tag_id"], name: "index_taggings_on_tag_id"
|
355
|
-
add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
|
356
|
-
add_index "taggings", ["taggable_id", "taggable_type", "tagger_id", "context"], name: "taggings_idy"
|
357
|
-
add_index "taggings", ["taggable_id"], name: "index_taggings_on_taggable_id"
|
358
|
-
add_index "taggings", ["taggable_type"], name: "index_taggings_on_taggable_type"
|
359
|
-
add_index "taggings", ["tagger_id", "tagger_type"], name: "index_taggings_on_tagger_id_and_tagger_type"
|
360
|
-
add_index "taggings", ["tagger_id"], name: "index_taggings_on_tagger_id"
|
361
|
-
|
362
346
|
create_table "tags", force: :cascade do |t|
|
363
|
-
t.string
|
347
|
+
t.string "name"
|
364
348
|
t.integer "taggings_count", default: 0
|
349
|
+
t.index ["name"], name: "index_tags_on_name", unique: true
|
365
350
|
end
|
366
351
|
|
367
|
-
add_index "tags", ["name"], name: "index_tags_on_name", unique: true
|
368
|
-
|
369
352
|
end
|