rtiss_acts_as_versioned 0.6.2
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.
- data/CHANGELOG +84 -0
- data/Gemfile +7 -0
- data/MIT-LICENSE +20 -0
- data/README +24 -0
- data/RUNNING_UNIT_TESTS +41 -0
- data/Rakefile +145 -0
- data/init.rb +2 -0
- data/lib/rtiss_acts_as_versioned.rb +625 -0
- data/rtiss_acts_as_versioned.gemspec +96 -0
- data/test/abstract_unit.rb +49 -0
- data/test/database.yml +18 -0
- data/test/fixtures/authors.yml +6 -0
- data/test/fixtures/landmark.rb +3 -0
- data/test/fixtures/landmark_h.yml +7 -0
- data/test/fixtures/landmarks.yml +7 -0
- data/test/fixtures/locked_pages.yml +10 -0
- data/test/fixtures/locked_pages_revisions.yml +27 -0
- data/test/fixtures/locked_rolle.rb +8 -0
- data/test/fixtures/migrations/1_add_versioned_tables.rb +15 -0
- data/test/fixtures/page.rb +43 -0
- data/test/fixtures/pages.yml +8 -0
- data/test/fixtures/pages_h.yml +18 -0
- data/test/fixtures/rolle.rb +7 -0
- data/test/fixtures/widget.rb +6 -0
- data/test/migration_test.rb +46 -0
- data/test/schema.rb +154 -0
- data/test/tiss_test.rb +331 -0
- data/test/versioned_test.rb +384 -0
- metadata +118 -0
@@ -0,0 +1,96 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
## This is the rakegem gemspec template. Make sure you read and understand
|
4
|
+
## all of the comments. Some sections require modification, and others can
|
5
|
+
## be deleted if you don't need them. Once you understand the contents of
|
6
|
+
## this file, feel free to delete any comments that begin with two hash marks.
|
7
|
+
## You can find comprehensive Gem::Specification documentation, at
|
8
|
+
## http://docs.rubygems.org/read/chapter/20
|
9
|
+
Gem::Specification.new do |s|
|
10
|
+
s.specification_version = 2 if s.respond_to? :specification_version=
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.rubygems_version = '1.3.5'
|
13
|
+
|
14
|
+
## Leave these as is they will be modified for you by the rake gemspec task.
|
15
|
+
## If your rubyforge_project name is different, then edit it and comment out
|
16
|
+
## the sub! line in the Rakefile
|
17
|
+
s.name = 'rtiss_acts_as_versioned'
|
18
|
+
s.version = '0.6.2'
|
19
|
+
s.date = '2014-02-03'
|
20
|
+
s.rubyforge_project = 'rtiss_acts_as_versioned'
|
21
|
+
|
22
|
+
## Make sure your summary is short. The description may be as long
|
23
|
+
## as you like.
|
24
|
+
s.summary = "Add simple versioning to ActiveRecord models (TISS version)."
|
25
|
+
s.description = "Add simple versioning to ActiveRecord models (TISS version).
|
26
|
+
|
27
|
+
Each model has a to-many model named mymodel_h which records all changes
|
28
|
+
(including destroys but not deletes) made to the model. This is the version
|
29
|
+
used by http://tiss.tuwien.ac.at and substantially differs from the original
|
30
|
+
version. If you want to use acts_as_versioned in your project we recommend
|
31
|
+
to use technoweenie's version (can be found also on github)"
|
32
|
+
|
33
|
+
## List the primary authors. If there are a bunch of authors, it's probably
|
34
|
+
## better to set the email to an email list or something. If you don't have
|
35
|
+
## a custom homepage, consider using your GitHub URL or the like.
|
36
|
+
s.authors = ["Rick Olson", "Johannes Thoma", "Igor Jancev"]
|
37
|
+
s.email = 'igor.jancev@tuwien.ac.at'
|
38
|
+
s.homepage = 'http://github.com/rtiss/rtiss_acts_as_versioned'
|
39
|
+
|
40
|
+
## This gets added to the $LOAD_PATH so that 'lib/NAME.rb' can be required as
|
41
|
+
## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
|
42
|
+
s.require_paths = %w[lib]
|
43
|
+
|
44
|
+
## Specify any RDoc options here. You'll want to add your README and
|
45
|
+
## LICENSE files to the extra_rdoc_files list.
|
46
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
47
|
+
s.extra_rdoc_files = %w[README MIT-LICENSE CHANGELOG]
|
48
|
+
|
49
|
+
## List your runtime dependencies here. Runtime dependencies are those
|
50
|
+
## that are needed for an end user to actually USE your code.
|
51
|
+
s.add_dependency('activerecord', ["~> 2.3.16"])
|
52
|
+
|
53
|
+
## List your development dependencies here. Development dependencies are
|
54
|
+
## those that are only needed during development
|
55
|
+
s.add_development_dependency('sqlite3-ruby', ["~> 1.3.1"])
|
56
|
+
|
57
|
+
## Leave this section as-is. It will be automatically generated from the
|
58
|
+
## contents of your Git repository via the gemspec task. DO NOT REMOVE
|
59
|
+
## THE MANIFEST COMMENTS, they are used as delimiters by the task.
|
60
|
+
# = MANIFEST =
|
61
|
+
s.files = %w[
|
62
|
+
CHANGELOG
|
63
|
+
Gemfile
|
64
|
+
MIT-LICENSE
|
65
|
+
README
|
66
|
+
RUNNING_UNIT_TESTS
|
67
|
+
Rakefile
|
68
|
+
init.rb
|
69
|
+
lib/rtiss_acts_as_versioned.rb
|
70
|
+
rtiss_acts_as_versioned.gemspec
|
71
|
+
test/abstract_unit.rb
|
72
|
+
test/database.yml
|
73
|
+
test/fixtures/authors.yml
|
74
|
+
test/fixtures/landmark.rb
|
75
|
+
test/fixtures/landmark_h.yml
|
76
|
+
test/fixtures/landmarks.yml
|
77
|
+
test/fixtures/locked_pages.yml
|
78
|
+
test/fixtures/locked_pages_revisions.yml
|
79
|
+
test/fixtures/locked_rolle.rb
|
80
|
+
test/fixtures/migrations/1_add_versioned_tables.rb
|
81
|
+
test/fixtures/page.rb
|
82
|
+
test/fixtures/pages.yml
|
83
|
+
test/fixtures/pages_h.yml
|
84
|
+
test/fixtures/rolle.rb
|
85
|
+
test/fixtures/widget.rb
|
86
|
+
test/migration_test.rb
|
87
|
+
test/schema.rb
|
88
|
+
test/tiss_test.rb
|
89
|
+
test/versioned_test.rb
|
90
|
+
]
|
91
|
+
# = MANIFEST =
|
92
|
+
|
93
|
+
## Test files will be grabbed from the file list. Make sure the path glob
|
94
|
+
## matches what you actually use.
|
95
|
+
s.test_files = s.files.select { |path| path =~ /^test\/test_.*\.rb/ }
|
96
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "bundler"
|
3
|
+
Bundler.setup(:default, :development)
|
4
|
+
|
5
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
6
|
+
require 'test/unit'
|
7
|
+
require 'active_support'
|
8
|
+
require 'active_record'
|
9
|
+
require 'active_record/fixtures'
|
10
|
+
require 'active_record/test_case'
|
11
|
+
|
12
|
+
begin
|
13
|
+
require 'ruby-debug'
|
14
|
+
Debugger.start
|
15
|
+
rescue LoadError
|
16
|
+
end
|
17
|
+
|
18
|
+
require 'rtiss_acts_as_versioned'
|
19
|
+
|
20
|
+
config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
|
21
|
+
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
|
22
|
+
ActiveRecord::Base.configurations = {'test' => config[ENV['DB'] || 'sqlite3']}
|
23
|
+
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['test'])
|
24
|
+
|
25
|
+
load(File.dirname(__FILE__) + "/schema.rb")
|
26
|
+
|
27
|
+
# set up custom sequence on widget_versions for DBs that support sequences
|
28
|
+
if ENV['DB'] == 'postgresql'
|
29
|
+
ActiveRecord::Base.connection.execute "DROP SEQUENCE widgets_seq;" rescue nil
|
30
|
+
ActiveRecord::Base.connection.remove_column :widget_versions, :id
|
31
|
+
ActiveRecord::Base.connection.execute "CREATE SEQUENCE widgets_seq START 101;"
|
32
|
+
ActiveRecord::Base.connection.execute "ALTER TABLE widget_versions ADD COLUMN id INTEGER PRIMARY KEY DEFAULT nextval('widgets_seq');"
|
33
|
+
end
|
34
|
+
|
35
|
+
class ActiveSupport::TestCase #:nodoc:
|
36
|
+
include ActiveRecord::TestFixtures
|
37
|
+
|
38
|
+
self.fixture_path = File.dirname(__FILE__) + "/fixtures/"
|
39
|
+
|
40
|
+
# Turn off transactional fixtures if you're working with MyISAM tables in MySQL
|
41
|
+
self.use_transactional_fixtures = true
|
42
|
+
|
43
|
+
# Instantiated fixtures are slow, but give you @david where you otherwise would need people(:david)
|
44
|
+
self.use_instantiated_fixtures = false
|
45
|
+
|
46
|
+
# Add more helper methods to be used by all tests here...
|
47
|
+
end
|
48
|
+
|
49
|
+
$:.unshift(ActiveSupport::TestCase.fixture_path)
|
data/test/database.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
sqlite:
|
2
|
+
adapter: sqlite
|
3
|
+
dbfile: acts_as_versioned_plugin.sqlite.db
|
4
|
+
sqlite3:
|
5
|
+
adapter: sqlite3
|
6
|
+
database: acts_as_versioned_plugin.sqlite3.db
|
7
|
+
postgresql:
|
8
|
+
adapter: postgresql
|
9
|
+
username: postgres
|
10
|
+
password: postgres
|
11
|
+
database: acts_as_versioned_plugin_test
|
12
|
+
min_messages: ERROR
|
13
|
+
mysql:
|
14
|
+
adapter: mysql
|
15
|
+
host: localhost
|
16
|
+
username: rails
|
17
|
+
password:
|
18
|
+
database: acts_as_versioned_plugin_test
|
@@ -0,0 +1,27 @@
|
|
1
|
+
welcome_1:
|
2
|
+
id: 1
|
3
|
+
page_id: 1
|
4
|
+
title: Welcome to the weblg
|
5
|
+
lock_version: 23
|
6
|
+
version_type: LockedPage
|
7
|
+
|
8
|
+
welcome_2:
|
9
|
+
id: 2
|
10
|
+
page_id: 1
|
11
|
+
title: Welcome to the weblog
|
12
|
+
lock_version: 24
|
13
|
+
version_type: LockedPage
|
14
|
+
|
15
|
+
thinking_1:
|
16
|
+
id: 3
|
17
|
+
page_id: 2
|
18
|
+
title: So I was thinking!!!
|
19
|
+
lock_version: 23
|
20
|
+
version_type: SpecialLockedPage
|
21
|
+
|
22
|
+
thinking_2:
|
23
|
+
id: 4
|
24
|
+
page_id: 2
|
25
|
+
title: So I was thinking
|
26
|
+
lock_version: 24
|
27
|
+
version_type: SpecialLockedPage
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class AddVersionedTables < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table("things") do |t|
|
4
|
+
t.column :title, :text
|
5
|
+
t.column :price, :decimal, :precision => 7, :scale => 2
|
6
|
+
t.column :type, :string
|
7
|
+
end
|
8
|
+
Thing.create_versioned_table
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.down
|
12
|
+
Thing.drop_versioned_table
|
13
|
+
drop_table "things" rescue nil
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class Page < ActiveRecord::Base
|
2
|
+
belongs_to :author
|
3
|
+
has_many :authors, :through => :versions, :order => 'name'
|
4
|
+
belongs_to :revisor, :class_name => 'Author'
|
5
|
+
has_many :revisors, :class_name => 'Author', :through => :versions, :order => 'name'
|
6
|
+
acts_as_versioned :if => :feeling_good? do
|
7
|
+
def self.included(base)
|
8
|
+
base.cattr_accessor :feeling_good
|
9
|
+
base.feeling_good = true
|
10
|
+
base.belongs_to :author
|
11
|
+
base.belongs_to :revisor, :class_name => 'Author'
|
12
|
+
end
|
13
|
+
|
14
|
+
def feeling_good?
|
15
|
+
@@feeling_good == true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module LockedPageExtension
|
21
|
+
def hello_world
|
22
|
+
'hello_world'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class LockedPage < ActiveRecord::Base
|
27
|
+
acts_as_versioned \
|
28
|
+
:inheritance_column => :version_type,
|
29
|
+
:foreign_key => :page_id,
|
30
|
+
:table_name => :locked_pages_revisions,
|
31
|
+
:class_name => 'LockedPageRevision',
|
32
|
+
:version_column => :lock_version,
|
33
|
+
:limit => 2,
|
34
|
+
:if_changed => :title,
|
35
|
+
:extend => LockedPageExtension
|
36
|
+
end
|
37
|
+
|
38
|
+
class SpecialLockedPage < LockedPage
|
39
|
+
end
|
40
|
+
|
41
|
+
class Author < ActiveRecord::Base
|
42
|
+
has_many :pages
|
43
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
welcome_2:
|
2
|
+
id: 1
|
3
|
+
page_id: 1
|
4
|
+
title: Welcome to the weblog
|
5
|
+
body: Such a lovely day
|
6
|
+
version: 24
|
7
|
+
author_id: 1
|
8
|
+
revisor_id: 1
|
9
|
+
deleted_in_original_table: 0
|
10
|
+
welcome_1:
|
11
|
+
id: 2
|
12
|
+
page_id: 1
|
13
|
+
title: Welcome to the weblg
|
14
|
+
body: Such a lovely day
|
15
|
+
version: 23
|
16
|
+
author_id: 2
|
17
|
+
revisor_id: 2
|
18
|
+
deleted_in_original_table: 0
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'abstract_unit')
|
2
|
+
|
3
|
+
if ActiveRecord::Base.connection.supports_migrations?
|
4
|
+
class Thing < ActiveRecord::Base
|
5
|
+
attr_accessor :version
|
6
|
+
acts_as_versioned
|
7
|
+
end
|
8
|
+
|
9
|
+
class MigrationTest < ActiveSupport::TestCase
|
10
|
+
self.use_transactional_fixtures = false
|
11
|
+
def teardown
|
12
|
+
if ActiveRecord::Base.connection.respond_to?(:initialize_schema_information)
|
13
|
+
ActiveRecord::Base.connection.initialize_schema_information
|
14
|
+
ActiveRecord::Base.connection.update "UPDATE schema_info SET version = 0"
|
15
|
+
else
|
16
|
+
ActiveRecord::Base.connection.initialize_schema_migrations_table
|
17
|
+
ActiveRecord::Base.connection.assume_migrated_upto_version(0)
|
18
|
+
end
|
19
|
+
|
20
|
+
Thing.connection.drop_table "things" rescue nil
|
21
|
+
Thing.connection.drop_table "thing_versions" rescue nil
|
22
|
+
Thing.reset_column_information
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_versioned_migration
|
26
|
+
assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
|
27
|
+
# take 'er up
|
28
|
+
ActiveRecord::Migrator.up(File.dirname(__FILE__) + '/fixtures/migrations/')
|
29
|
+
t = Thing.create :title => 'blah blah', :price => 123.45, :type => 'Thing'
|
30
|
+
assert_equal 1, t.versions.size
|
31
|
+
|
32
|
+
# check that the price column has remembered its value correctly
|
33
|
+
assert_equal t.price, t.versions.first.price
|
34
|
+
assert_equal t.title, t.versions.first.title
|
35
|
+
assert_equal t[:type], t.versions.first[:type]
|
36
|
+
|
37
|
+
# make sure that the precision of the price column has been preserved
|
38
|
+
assert_equal 7, Thing::Version.columns.find{|c| c.name == "price"}.precision
|
39
|
+
assert_equal 2, Thing::Version.columns.find{|c| c.name == "price"}.scale
|
40
|
+
|
41
|
+
# now lets take 'er back down
|
42
|
+
ActiveRecord::Migrator.down(File.dirname(__FILE__) + '/fixtures/migrations/')
|
43
|
+
assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/test/schema.rb
ADDED
@@ -0,0 +1,154 @@
|
|
1
|
+
ActiveRecord::Schema.define(:version => 0) do
|
2
|
+
create_table :pages, :force => true do |t|
|
3
|
+
t.column :version, :integer
|
4
|
+
t.column :title, :string, :limit => 255
|
5
|
+
t.column :body, :text
|
6
|
+
t.column :created_on, :datetime
|
7
|
+
t.column :updated_on, :datetime
|
8
|
+
t.column :author_id, :integer
|
9
|
+
t.column :revisor_id, :integer
|
10
|
+
end
|
11
|
+
|
12
|
+
create_table :pages_h, :force => true do |t|
|
13
|
+
t.column :page_id, :integer
|
14
|
+
t.column :version, :integer
|
15
|
+
t.column :title, :string, :limit => 255
|
16
|
+
t.column :body, :text
|
17
|
+
t.column :created_on, :datetime
|
18
|
+
t.column :updated_on, :datetime
|
19
|
+
t.column :author_id, :integer
|
20
|
+
t.column :revisor_id, :integer
|
21
|
+
t.column :deleted_in_original_table, :boolean
|
22
|
+
t.column :record_restored, :boolean
|
23
|
+
end
|
24
|
+
|
25
|
+
add_index :pages_h, [:page_id, :version], :unique => true
|
26
|
+
|
27
|
+
create_table :authors, :force => true do |t|
|
28
|
+
t.column :page_id, :integer
|
29
|
+
t.column :name, :string
|
30
|
+
end
|
31
|
+
|
32
|
+
create_table :locked_pages, :force => true do |t|
|
33
|
+
t.column :lock_version, :integer
|
34
|
+
t.column :title, :string, :limit => 255
|
35
|
+
t.column :body, :text
|
36
|
+
t.column :type, :string, :limit => 255
|
37
|
+
end
|
38
|
+
|
39
|
+
create_table :locked_pages_revisions, :force => true do |t|
|
40
|
+
t.column :page_id, :integer
|
41
|
+
t.column :lock_version, :integer
|
42
|
+
t.column :title, :string, :limit => 255
|
43
|
+
t.column :body, :text
|
44
|
+
t.column :version_type, :string, :limit => 255
|
45
|
+
t.column :updated_at, :datetime
|
46
|
+
t.column :deleted_in_original_table, :boolean
|
47
|
+
t.column :record_restored, :boolean
|
48
|
+
end
|
49
|
+
|
50
|
+
add_index :locked_pages_revisions, [:page_id, :lock_version], :unique => true
|
51
|
+
|
52
|
+
create_table :widgets, :force => true do |t|
|
53
|
+
t.column :name, :string, :limit => 50
|
54
|
+
t.column :foo, :string
|
55
|
+
t.column :version, :integer
|
56
|
+
t.column :updated_at, :datetime
|
57
|
+
end
|
58
|
+
|
59
|
+
create_table :widgets_h, :force => true do |t|
|
60
|
+
t.column :widget_id, :integer
|
61
|
+
t.column :name, :string, :limit => 50
|
62
|
+
t.column :version, :integer
|
63
|
+
t.column :updated_at, :datetime
|
64
|
+
t.column :deleted_in_original_table, :boolean
|
65
|
+
t.column :record_restored, :boolean
|
66
|
+
end
|
67
|
+
|
68
|
+
add_index :widgets_h, [:widget_id, :version], :unique => true
|
69
|
+
|
70
|
+
create_table :landmarks, :force => true do |t|
|
71
|
+
t.column :name, :string
|
72
|
+
t.column :latitude, :float
|
73
|
+
t.column :longitude, :float
|
74
|
+
t.column :doesnt_trigger_version,:string
|
75
|
+
t.column :version, :integer
|
76
|
+
end
|
77
|
+
|
78
|
+
create_table :landmark_h, :force => true do |t|
|
79
|
+
t.column :landmark_id, :integer
|
80
|
+
t.column :name, :string
|
81
|
+
t.column :latitude, :float
|
82
|
+
t.column :longitude, :float
|
83
|
+
t.column :doesnt_trigger_version,:string
|
84
|
+
t.column :version, :integer
|
85
|
+
t.column :deleted_in_original_table, :boolean
|
86
|
+
t.column :record_restored, :boolean
|
87
|
+
end
|
88
|
+
|
89
|
+
add_index :landmark_h, [:landmark_id, :version], :unique => true
|
90
|
+
|
91
|
+
create_table "rolle", :force => true do |t|
|
92
|
+
t.datetime "created_at"
|
93
|
+
t.datetime "updated_at"
|
94
|
+
t.integer "version", :precision => 38, :scale => 0, :default => 1
|
95
|
+
t.integer "mutator_id", :precision => 38, :scale => 0, :default => 0
|
96
|
+
t.string "name", :limit => 50, :null => false
|
97
|
+
t.string "beschreibung", :limit => 250
|
98
|
+
t.integer "parent_id", :precision => 38, :scale => 0
|
99
|
+
t.string "beschreibung_intern", :limit => 4000
|
100
|
+
t.string "geltungsbereich", :limit => 1000
|
101
|
+
t.string "vergaberichtlinien", :limit => 4000
|
102
|
+
t.boolean "ist_delegierbar", :precision => 1, :scale => 0, :default => true
|
103
|
+
end
|
104
|
+
|
105
|
+
create_table "rolle_h", :force => true do |t|
|
106
|
+
t.integer "rolle_id", :precision => 38, :scale => 0
|
107
|
+
t.integer "version", :precision => 38, :scale => 0
|
108
|
+
t.datetime "created_at"
|
109
|
+
t.datetime "updated_at"
|
110
|
+
t.integer "mutator_id", :precision => 38, :scale => 0
|
111
|
+
t.string "name", :limit => 50
|
112
|
+
t.string "beschreibung", :limit => 250
|
113
|
+
t.boolean "deleted_in_original_table", :precision => 1, :scale => 0
|
114
|
+
t.boolean "record_restored", :precision => 1, :scale => 0
|
115
|
+
t.integer "parent_id", :precision => 38, :scale => 0
|
116
|
+
t.string "beschreibung_intern", :limit => 4000
|
117
|
+
t.string "geltungsbereich", :limit => 1000
|
118
|
+
t.string "vergaberichtlinien", :limit => 4000
|
119
|
+
t.boolean "ist_delegierbar", :precision => 1, :scale => 0, :default => true
|
120
|
+
end
|
121
|
+
|
122
|
+
create_table "locked_rolle", :force => true do |t|
|
123
|
+
t.datetime "created_at"
|
124
|
+
t.datetime "updated_at"
|
125
|
+
t.integer "version", :precision => 38, :scale => 0, :default => 1
|
126
|
+
t.integer "lock_version", :precision => 38, :scale => 0, :default => 0
|
127
|
+
t.integer "mutator_id", :precision => 38, :scale => 0, :default => 0
|
128
|
+
t.string "name", :limit => 50, :null => false
|
129
|
+
t.string "beschreibung", :limit => 250
|
130
|
+
t.integer "parent_id", :precision => 38, :scale => 0
|
131
|
+
t.string "beschreibung_intern", :limit => 4000
|
132
|
+
t.string "geltungsbereich", :limit => 1000
|
133
|
+
t.string "vergaberichtlinien", :limit => 4000
|
134
|
+
t.boolean "ist_delegierbar", :precision => 1, :scale => 0, :default => true
|
135
|
+
end
|
136
|
+
|
137
|
+
create_table "locked_rolle_h", :force => true do |t|
|
138
|
+
t.integer "locked_rolle_id", :precision => 38, :scale => 0
|
139
|
+
t.integer "version", :precision => 38, :scale => 0
|
140
|
+
t.integer "lock_version", :precision => 38, :scale => 0, :default => 0
|
141
|
+
t.datetime "created_at"
|
142
|
+
t.datetime "updated_at"
|
143
|
+
t.integer "mutator_id", :precision => 38, :scale => 0
|
144
|
+
t.string "name", :limit => 50
|
145
|
+
t.string "beschreibung", :limit => 250
|
146
|
+
t.boolean "deleted_in_original_table", :precision => 1, :scale => 0
|
147
|
+
t.boolean "record_restored", :precision => 1, :scale => 0
|
148
|
+
t.integer "parent_id", :precision => 38, :scale => 0
|
149
|
+
t.string "beschreibung_intern", :limit => 4000
|
150
|
+
t.string "geltungsbereich", :limit => 1000
|
151
|
+
t.string "vergaberichtlinien", :limit => 4000
|
152
|
+
t.boolean "ist_delegierbar", :precision => 1, :scale => 0, :default => true
|
153
|
+
end
|
154
|
+
end
|