Rubernate 0.1.1 → 0.1.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/lib/rubernate/impl/dbigeneric.rb +14 -9
- data/lib/rubernate/impl/dbimysql.rb +1 -1
- data/lib/rubernate/impl/dbioracle.rb +1 -7
- data/lib/rubernate/impl/memory.rb +1 -1
- data/lib/rubernate/init/init_mysql.rb +71 -0
- data/lib/rubernate/init/init_oracle.rb +88 -0
- data/lib/rubernate.rb +16 -9
- data/tests/config.rb +2 -2
- data/tests/rubernate/callbacks_test.rb +2 -2
- data/tests/rubernate/impl/dbigeneric_stub.rb +3 -3
- data/tests/rubernate/impl/memory_test.rb +2 -2
- data/tests/rubernate/rubernate_test.rb +4 -4
- metadata +5 -4
- data/db/mysql.sql +0 -36
- data/db/oracle.sql +0 -30
|
@@ -23,11 +23,11 @@ module DBI
|
|
|
23
23
|
|
|
24
24
|
TimeType = ::DBI::Timestamp
|
|
25
25
|
|
|
26
|
-
#
|
|
27
|
-
class
|
|
28
|
-
# Accepts Runtime impl
|
|
29
|
-
def initialize klass, db_url, db_user, db_password
|
|
30
|
-
@klass, @db_url, @db_user, @db_password = klass, db_url, db_user, db_password
|
|
26
|
+
# Holds configuration information and serves as factory for Runtime objects.
|
|
27
|
+
class Configuration
|
|
28
|
+
# Accepts Runtime impl class, db initializer class, database url, user name, and user password
|
|
29
|
+
def initialize klass, init, db_url, db_user, db_password
|
|
30
|
+
@klass, @init, @db_url, @db_user, @db_password = klass, init, db_url, db_user, db_password
|
|
31
31
|
# @params = {'AutoCommit' => false} #TODO: refine
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -43,6 +43,11 @@ module DBI
|
|
|
43
43
|
::DBI.connect(@db_url, @db_user, @db_password, @params) { |dbh| yield dbh }
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
+
# Intialize databae.
|
|
47
|
+
def init_db
|
|
48
|
+
connect {|dbh| @init.init_db dbh}
|
|
49
|
+
end
|
|
50
|
+
|
|
46
51
|
def to_s
|
|
47
52
|
"runtime impl: #{@klass}, db_url: #{@db_url}, db_user: #{@db_user}, db_password: #{@db_password}"
|
|
48
53
|
end
|
|
@@ -54,10 +59,10 @@ module DBI
|
|
|
54
59
|
class Runtime < Rubernate::Runtime
|
|
55
60
|
include DBI
|
|
56
61
|
|
|
57
|
-
#
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
# In some implementations parameters are deleted automatically with corresponding r_object records
|
|
63
|
+
DELETE_PARAMS = <<-SQL
|
|
64
|
+
DELETE FROM R_PARAMS WHERE OBJECT_PK = ?
|
|
65
|
+
SQL
|
|
61
66
|
DELETE_PARAMS_FOR = <<-SQL
|
|
62
67
|
DELETE FROM R_PARAMS WHERE OBJECT_PK IN
|
|
63
68
|
SQL
|
|
@@ -9,13 +9,7 @@ module DBI
|
|
|
9
9
|
CREATE_PEER = <<-SQL
|
|
10
10
|
INSERT INTO R_OBJECTS (OBJECT_PK, OBJECT_CLASS) values (?, ?)
|
|
11
11
|
SQL
|
|
12
|
-
|
|
13
|
-
# TODO: make it work
|
|
14
|
-
def initialize dbh
|
|
15
|
-
super
|
|
16
|
-
dbh.do "ALTER session SET nls_date_format = 'YYYY/MM/DD HH24:MI:SS'"
|
|
17
|
-
end
|
|
18
|
-
|
|
12
|
+
|
|
19
13
|
# Creates record in r_objects for specified object
|
|
20
14
|
def create object
|
|
21
15
|
object.peer = Rubernate::Peer.new
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require 'erb'
|
|
2
|
+
|
|
3
|
+
module Rubernate
|
|
4
|
+
module DBI
|
|
5
|
+
class MySqlInit
|
|
6
|
+
CREATE_R_OBJECTS = %q{
|
|
7
|
+
CREATE TABLE R_OBJECTS (
|
|
8
|
+
OBJECT_PK INTEGER(20) PRIMARY KEY AUTO_INCREMENT,
|
|
9
|
+
OBJECT_CLASS VARCHAR(100) NOT NULL) ENGINE=InnoDB;
|
|
10
|
+
}.gsub(/^ /, '')
|
|
11
|
+
|
|
12
|
+
CREATE_R_PARAMS = %q{
|
|
13
|
+
CREATE TABLE R_PARAMS (
|
|
14
|
+
OBJECT_PK INTEGER(20) NOT NULL,
|
|
15
|
+
NAME VARCHAR(100) NOT NULL,
|
|
16
|
+
FLAGS INTEGER(5) NOT NULL,
|
|
17
|
+
INT_VALUE INTEGER(20),
|
|
18
|
+
FLT_VALUE FLOAT,
|
|
19
|
+
STR_VALUE VARCHAR(255),
|
|
20
|
+
DAT_VALUE DATETIME,
|
|
21
|
+
REF_VALUE INTEGER(20),
|
|
22
|
+
CONSTRAINT R_PARAM_FK FOREIGN KEY (OBJECT_PK) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE,
|
|
23
|
+
CONSTRAINT R_REF_FK FOREIGN KEY (REF_VALUE) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE) ENGINE=InnoDB;
|
|
24
|
+
}.gsub(/^ /, '')
|
|
25
|
+
CREATE_INDEX_O_PK_CLASS = %q{
|
|
26
|
+
CREATE INDEX R_O_PK_CLASS ON R_OBJECTS (OBJECT_PK ASC, OBJECT_CLASS);
|
|
27
|
+
}.gsub(/^ /, '')
|
|
28
|
+
CREATE_INDEX_P_PK_NAME = %q{
|
|
29
|
+
CREATE INDEX R_P_PK_NAME ON R_PARAMS (OBJECT_PK ASC, NAME);
|
|
30
|
+
}.gsub(/^ /, '')
|
|
31
|
+
|
|
32
|
+
TEMPLATE = %q{
|
|
33
|
+
#
|
|
34
|
+
# Creates Rubernate tables for MySQL database.
|
|
35
|
+
# Copyright (C) 2006 Andrey Ryabov <andrey_ryabov@bk.ru>
|
|
36
|
+
#
|
|
37
|
+
|
|
38
|
+
# Uncomment following if you want to create database named rubernate_db
|
|
39
|
+
# CREATE DATABASE RUBERNATE_DB;
|
|
40
|
+
# USE RUBERNATE_DB;
|
|
41
|
+
|
|
42
|
+
# Create r_objects table <%= CREATE_R_OBJECTS %>
|
|
43
|
+
# Create r_params table <%= CREATE_R_PARAMS %>
|
|
44
|
+
# Create index on r_objects <%= CREATE_INDEX_O_PK_CLASS %>
|
|
45
|
+
# Create index on r_params <%= CREATE_INDEX_P_PK_NAME %>
|
|
46
|
+
#
|
|
47
|
+
# End
|
|
48
|
+
#
|
|
49
|
+
}.gsub(/^ /, '')
|
|
50
|
+
|
|
51
|
+
# Prints initialization script and tryes to initialize databaes database if dbh is given.
|
|
52
|
+
def self.init_db dbh=nil
|
|
53
|
+
puts ERB.new(TEMPLATE).result(binding)
|
|
54
|
+
if dbh
|
|
55
|
+
puts "\nInitializing database ... "
|
|
56
|
+
puts "Creation of r_objects - #{exec_ddl dbh, CREATE_R_OBJECTS}"
|
|
57
|
+
puts "Creation of r_params - #{exec_ddl dbh, CREATE_R_PARAMS}"
|
|
58
|
+
puts "Creation of index on r_objects - #{exec_ddl dbh, CREATE_INDEX_O_PK_CLASS}"
|
|
59
|
+
puts "Creation of index on r_params - #{exec_ddl dbh, CREATE_INDEX_P_PK_NAME}"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def self.exec_ddl dbh, stat
|
|
64
|
+
dbh.do stat
|
|
65
|
+
'done'
|
|
66
|
+
rescue Exception => e
|
|
67
|
+
"failed: #{e}"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
require 'erb'
|
|
2
|
+
|
|
3
|
+
module Rubernate
|
|
4
|
+
module DBI
|
|
5
|
+
class OracleInit
|
|
6
|
+
CREATE_R_OBJECTS = %q{
|
|
7
|
+
CREATE TABLE R_OBJECTS (
|
|
8
|
+
OBJECT_PK NUMBER(20) PRIMARY KEY,
|
|
9
|
+
OBJECT_CLASS VARCHAR2(100) NOT NULL)
|
|
10
|
+
}.gsub(/^ /, '')
|
|
11
|
+
|
|
12
|
+
CREATE_R_PARAMS = %q{
|
|
13
|
+
CREATE TABLE R_PARAMS (
|
|
14
|
+
OBJECT_PK NUMBER(20) NOT NULL,
|
|
15
|
+
NAME VARCHAR2(100) NOT NULL,
|
|
16
|
+
FLAGS NUMBER(5) NOT NULL,
|
|
17
|
+
INT_VALUE NUMBER(20),
|
|
18
|
+
FLT_VALUE FLOAT,
|
|
19
|
+
STR_VALUE VARCHAR2(1000),
|
|
20
|
+
DAT_VALUE DATE,
|
|
21
|
+
REF_VALUE NUMBER(20),
|
|
22
|
+
CONSTRAINT R_PARAM_FK FOREIGN KEY (OBJECT_PK) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE,
|
|
23
|
+
CONSTRAINT R_REF_FK FOREIGN KEY (REF_VALUE) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE)
|
|
24
|
+
}.gsub(/^ /, '')
|
|
25
|
+
CREATE_INDEX_O_PK_CLASS = %q{
|
|
26
|
+
CREATE INDEX R_O_PK_CLASS ON R_OBJECTS (OBJECT_PK ASC, OBJECT_CLASS)
|
|
27
|
+
}.gsub(/^ /, '')
|
|
28
|
+
CREATE_INDEX_P_PK_NAME = %q{
|
|
29
|
+
CREATE INDEX R_P_PK_NAME ON R_PARAMS (OBJECT_PK ASC, NAME)
|
|
30
|
+
}.gsub(/^ /, '')
|
|
31
|
+
CREATE_R_PK_SEQUENCE = %q{
|
|
32
|
+
CREATE SEQUENCE R_PK_SEQUENCE START WITH 1001 INCREMENT BY 1
|
|
33
|
+
}.gsub(/^ /, '')
|
|
34
|
+
|
|
35
|
+
TEMPLATE = %q{
|
|
36
|
+
/**
|
|
37
|
+
* Creates Rubernate tables for Oracle database.
|
|
38
|
+
* Copyright (C) 2006 Andrey Ryabov <andrey_ryabov@bk.ru>
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Create r_objects table
|
|
43
|
+
*/ <%= CREATE_R_OBJECTS %>/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Create r_params table
|
|
47
|
+
*/ <%= CREATE_R_PARAMS %>/
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Create index on r_objects
|
|
51
|
+
*/ <%= CREATE_INDEX_O_PK_CLASS %>/
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Create index on r_params
|
|
55
|
+
*/ <%= CREATE_INDEX_P_PK_NAME %>/
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Create primary key sequence
|
|
59
|
+
*/ <%= CREATE_R_PK_SEQUENCE %>/
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* End
|
|
64
|
+
*/
|
|
65
|
+
}.gsub(/^ /, '')
|
|
66
|
+
|
|
67
|
+
# Prints initialization script and tryes to initialize databaes database if dbh is given.
|
|
68
|
+
def self.init_db dbh=nil
|
|
69
|
+
puts ERB.new(TEMPLATE).result(binding)
|
|
70
|
+
if dbh
|
|
71
|
+
puts "\nInitializing database ... "
|
|
72
|
+
puts "Creation of r_objects - #{exec_ddl dbh, CREATE_R_OBJECTS}"
|
|
73
|
+
puts "Creation of r_params - #{exec_ddl dbh, CREATE_R_PARAMS}"
|
|
74
|
+
puts "Creation of index on r_objects - #{exec_ddl dbh, CREATE_INDEX_O_PK_CLASS}"
|
|
75
|
+
puts "Creation of index on r_params - #{exec_ddl dbh, CREATE_INDEX_P_PK_NAME}"
|
|
76
|
+
puts "Creation of pk sequence - #{exec_ddl dbh, CREATE_R_PK_SEQUENCE}"
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def self.exec_ddl dbh, stat
|
|
81
|
+
dbh.do stat
|
|
82
|
+
'done'
|
|
83
|
+
rescue Exception => e
|
|
84
|
+
"failed: #{e}"
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
data/lib/rubernate.rb
CHANGED
|
@@ -33,6 +33,8 @@ require 'rubernate/queries'
|
|
|
33
33
|
require 'rubernate/impl/memory'
|
|
34
34
|
require 'rubernate/impl/dbimysql'
|
|
35
35
|
require 'rubernate/impl/dbioracle'
|
|
36
|
+
require 'rubernate/init/init_mysql'
|
|
37
|
+
require 'rubernate/init/init_oracle'
|
|
36
38
|
|
|
37
39
|
|
|
38
40
|
|
|
@@ -44,11 +46,11 @@ module Rubernate
|
|
|
44
46
|
|
|
45
47
|
# Rubernate core singelton methods.
|
|
46
48
|
class << self
|
|
47
|
-
# Allows you setup Rubernate by yours implementaion of
|
|
49
|
+
# Allows you setup Rubernate by yours implementaion of Configuration.
|
|
48
50
|
# See also method config
|
|
49
|
-
def
|
|
50
|
-
Log.info "Rubernate configured by #{
|
|
51
|
-
@
|
|
51
|
+
def configuration= config
|
|
52
|
+
Log.info "Rubernate configured by #{config}"
|
|
53
|
+
@factory = config
|
|
52
54
|
end
|
|
53
55
|
|
|
54
56
|
# Performs configuration of Rubernate.
|
|
@@ -57,12 +59,17 @@ module Rubernate
|
|
|
57
59
|
# * user - databases user name
|
|
58
60
|
# * password - databases users password
|
|
59
61
|
def config db, url, user, password
|
|
60
|
-
impl = case db
|
|
61
|
-
when :mysql: DBI::
|
|
62
|
-
when :oracle: DBI::OracleRuntime
|
|
62
|
+
impl, init = case db
|
|
63
|
+
when :mysql: [DBI::MySqlRuntime, DBI::MySqlInit]
|
|
64
|
+
when :oracle: [DBI::OracleRuntime, DBI::OracleInit]
|
|
63
65
|
else raise "Database #{db} not supported"
|
|
64
66
|
end
|
|
65
|
-
self.
|
|
67
|
+
self.configuration = DBI::Configuration.new impl, init, url, user, password
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Intializes database - creates necessary tables, sequences and indices.
|
|
71
|
+
def init_db
|
|
72
|
+
@factory.init_db
|
|
66
73
|
end
|
|
67
74
|
|
|
68
75
|
# Returns Runtime object associated with current session
|
|
@@ -78,7 +85,7 @@ module Rubernate
|
|
|
78
85
|
|
|
79
86
|
# Begins new Rubernate session
|
|
80
87
|
def session
|
|
81
|
-
runtime = @
|
|
88
|
+
runtime = @factory.create
|
|
82
89
|
Thread.current[:Rubernate] = runtime
|
|
83
90
|
runtime.begin
|
|
84
91
|
return runtime unless block_given?
|
data/tests/config.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Set to true to run tests or Oracle
|
|
2
|
-
$run_oracle_tests =
|
|
2
|
+
$run_oracle_tests = true
|
|
3
3
|
|
|
4
4
|
ORA_RUNTIME_CLASS = Rubernate::DBI::OracleRuntime
|
|
5
5
|
ORA_DB_URL = 'dbi:OCI8:dbg91'
|
|
@@ -7,7 +7,7 @@ ORA_DB_USER = 'netcracker65'
|
|
|
7
7
|
ORA_DB_PWD = 'netcracker65'
|
|
8
8
|
|
|
9
9
|
# Set to true to run tests on MySQL
|
|
10
|
-
$run_mysql_tests =
|
|
10
|
+
$run_mysql_tests = true
|
|
11
11
|
|
|
12
12
|
MYSQL_RUNTIME_CLASS = Rubernate::DBI::MySqlRuntime
|
|
13
13
|
MYSQL_DB_URL = 'dbi:Mysql:rubernate_db:localhost'
|
|
@@ -68,9 +68,9 @@ module Rubernate
|
|
|
68
68
|
include FixtureClasses
|
|
69
69
|
|
|
70
70
|
def setup
|
|
71
|
-
@factory = Rubernate::Memory::
|
|
71
|
+
@factory = Rubernate::Memory::Configuration.new
|
|
72
72
|
@runtime = @factory.create
|
|
73
|
-
Rubernate.
|
|
73
|
+
Rubernate.configuration = @factory
|
|
74
74
|
Callbacks.clear
|
|
75
75
|
end
|
|
76
76
|
|
|
@@ -13,7 +13,7 @@ module DBI::GenericTests
|
|
|
13
13
|
include FixtureClasses
|
|
14
14
|
|
|
15
15
|
def init rt_class, db_url, db_user, db_password
|
|
16
|
-
@factory =
|
|
16
|
+
@factory = Configuration.new rt_class, nil, db_url, db_user, db_password
|
|
17
17
|
@factory.connect {|dbh|
|
|
18
18
|
dbh.do 'delete from r_params'
|
|
19
19
|
dbh.do 'delete from r_objects'
|
|
@@ -403,13 +403,13 @@ module GenericRuntimeTests
|
|
|
403
403
|
include FixtureClasses
|
|
404
404
|
|
|
405
405
|
def init rt_class, db_url, db_user, db_password
|
|
406
|
-
@factory =
|
|
406
|
+
@factory = Configuration.new rt_class, nil, db_url, db_user, db_password
|
|
407
407
|
@factory.connect {|dbh|
|
|
408
408
|
dbh.do 'delete from r_params'
|
|
409
409
|
dbh.do 'delete from r_objects'
|
|
410
410
|
dbh.commit
|
|
411
411
|
}
|
|
412
|
-
Rubernate.
|
|
412
|
+
Rubernate.configuration = @factory
|
|
413
413
|
Thread.current[:on_save] = Thread.current[:on_load] = nil
|
|
414
414
|
end
|
|
415
415
|
|
|
@@ -9,9 +9,9 @@ class Rubernate::Memory::RuntimeTest < Test::Unit::TestCase
|
|
|
9
9
|
include FixtureClasses
|
|
10
10
|
|
|
11
11
|
def setup
|
|
12
|
-
@factory =
|
|
12
|
+
@factory = Configuration.new
|
|
13
13
|
@runtime = @factory.create
|
|
14
|
-
Rubernate.
|
|
14
|
+
Rubernate.configuration = @factory
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
# Runtime Interface Tests
|
|
@@ -14,9 +14,9 @@ class Rubernate::RubernateTest < Test::Unit::TestCase
|
|
|
14
14
|
include Rubernate::DBI
|
|
15
15
|
|
|
16
16
|
def setup
|
|
17
|
-
@factory = Rubernate::Memory::
|
|
17
|
+
@factory = Rubernate::Memory::Configuration.new
|
|
18
18
|
@runtime = @factory.create
|
|
19
|
-
Rubernate.
|
|
19
|
+
Rubernate.configuration = @factory
|
|
20
20
|
Thread.current[:on_save] = Thread.current[:on_load] = nil
|
|
21
21
|
end
|
|
22
22
|
|
|
@@ -244,9 +244,9 @@ class Rubernate::BaseRuntimeTest < Test::Unit::TestCase
|
|
|
244
244
|
include FixtureClasses
|
|
245
245
|
|
|
246
246
|
def setup
|
|
247
|
-
@factory = Rubernate::Memory::
|
|
247
|
+
@factory = Rubernate::Memory::Configuration.new
|
|
248
248
|
@runtime = @factory.create
|
|
249
|
-
Rubernate.
|
|
249
|
+
Rubernate.configuration = @factory
|
|
250
250
|
Thread.current[:on_save] = Thread.current[:on_load] = nil
|
|
251
251
|
end
|
|
252
252
|
|
metadata
CHANGED
|
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
|
3
3
|
specification_version: 1
|
|
4
4
|
name: Rubernate
|
|
5
5
|
version: !ruby/object:Gem::Version
|
|
6
|
-
version: 0.1.
|
|
7
|
-
date: 2006-03-
|
|
6
|
+
version: 0.1.2
|
|
7
|
+
date: 2006-03-10 00:00:00 +03:00
|
|
8
8
|
summary: Object-oriented storage for Ruby objects based on relational database model
|
|
9
9
|
require_paths:
|
|
10
10
|
- lib
|
|
@@ -28,13 +28,12 @@ cert_chain:
|
|
|
28
28
|
authors:
|
|
29
29
|
- Andrey Ryabov
|
|
30
30
|
files:
|
|
31
|
-
- db/mysql.sql
|
|
32
|
-
- db/oracle.sql
|
|
33
31
|
- lib/rubernate
|
|
34
32
|
- lib/rubernate.rb
|
|
35
33
|
- lib/rubernate/callbacks.rb
|
|
36
34
|
- lib/rubernate/entity.rb
|
|
37
35
|
- lib/rubernate/impl
|
|
36
|
+
- lib/rubernate/init
|
|
38
37
|
- lib/rubernate/mixins.rb
|
|
39
38
|
- lib/rubernate/peer.rb
|
|
40
39
|
- lib/rubernate/queries.rb
|
|
@@ -43,6 +42,8 @@ files:
|
|
|
43
42
|
- lib/rubernate/impl/dbimysql.rb
|
|
44
43
|
- lib/rubernate/impl/dbioracle.rb
|
|
45
44
|
- lib/rubernate/impl/memory.rb
|
|
45
|
+
- lib/rubernate/init/init_mysql.rb
|
|
46
|
+
- lib/rubernate/init/init_oracle.rb
|
|
46
47
|
- tests/all_tests.rb
|
|
47
48
|
- tests/config.rb
|
|
48
49
|
- tests/README
|
data/db/mysql.sql
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates Rubernate tables for MySQL database.
|
|
3
|
-
* Copyright (C) 2006 Andrey Ryabov <andrey_ryabov@bk.ru>
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
# Creates database named rubernate_db change name and uncomment if necessary
|
|
7
|
-
# CREATE DATABASE RUBERNATE_DB;
|
|
8
|
-
# USE RUBERNATE_DB;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
DROP TABLE IF EXISTS R_PARAMS;
|
|
12
|
-
DROP TABLE IF EXISTS R_OBJECTS;
|
|
13
|
-
|
|
14
|
-
CREATE TABLE R_OBJECTS (
|
|
15
|
-
OBJECT_PK INTEGER(20) PRIMARY KEY AUTO_INCREMENT,
|
|
16
|
-
OBJECT_CLASS VARCHAR(100) NOT NULL) ENGINE=InnoDB;
|
|
17
|
-
|
|
18
|
-
CREATE TABLE R_PARAMS (
|
|
19
|
-
OBJECT_PK INTEGER(20) NOT NULL,
|
|
20
|
-
NAME VARCHAR(100) NOT NULL,
|
|
21
|
-
FLAGS INTEGER(5) NOT NULL,
|
|
22
|
-
INT_VALUE INTEGER(20),
|
|
23
|
-
FLT_VALUE FLOAT,
|
|
24
|
-
STR_VALUE VARCHAR(255),
|
|
25
|
-
DAT_VALUE DATETIME,
|
|
26
|
-
REF_VALUE INTEGER(20),
|
|
27
|
-
CONSTRAINT R_PARAM_FK FOREIGN KEY (OBJECT_PK) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE,
|
|
28
|
-
CONSTRAINT R_REF_FK FOREIGN KEY (REF_VALUE) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE) ENGINE=InnoDB;
|
|
29
|
-
|
|
30
|
-
CREATE INDEX R_O_PK_CLASS ON R_OBJECTS (OBJECT_PK ASC, OBJECT_CLASS);
|
|
31
|
-
CREATE INDEX R_P_PK_NAME ON R_PARAMS (OBJECT_PK ASC, NAME);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* End
|
|
36
|
-
*/
|
data/db/oracle.sql
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates Rubernate tables for Oracle database.
|
|
3
|
-
* Copyright (C) 2006 Andrey Ryabov <andrey_ryabov@bk.ru>
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
CREATE TABLE R_OBJECTS (
|
|
7
|
-
OBJECT_PK NUMBER(20) PRIMARY KEY,
|
|
8
|
-
OBJECT_CLASS VARCHAR2(100) NOT NULL)
|
|
9
|
-
/
|
|
10
|
-
CREATE TABLE R_PARAMS (
|
|
11
|
-
OBJECT_PK NUMBER(20) NOT NULL,
|
|
12
|
-
NAME VARCHAR2(100) NOT NULL,
|
|
13
|
-
FLAGS NUMBER(5) NOT NULL,
|
|
14
|
-
INT_VALUE NUMBER(20),
|
|
15
|
-
FLT_VALUE FLOAT,
|
|
16
|
-
STR_VALUE VARCHAR2(1000),
|
|
17
|
-
DAT_VALUE DATE,
|
|
18
|
-
REF_VALUE NUMBER(20),
|
|
19
|
-
CONSTRAINT R_PARAM_FK FOREIGN KEY (OBJECT_PK) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE,
|
|
20
|
-
CONSTRAINT R_REF_FK FOREIGN KEY (REF_VALUE) REFERENCES R_OBJECTS(OBJECT_PK) ON DELETE CASCADE)
|
|
21
|
-
/
|
|
22
|
-
CREATE INDEX R_O_PK_CLASS ON R_OBJECTS (OBJECT_PK ASC, OBJECT_CLASS)
|
|
23
|
-
/
|
|
24
|
-
CREATE INDEX R_P_PK_NAME ON R_PARAMS (OBJECT_PK ASC, NAME)
|
|
25
|
-
/
|
|
26
|
-
CREATE SEQUENCE R_PK_SEQUENCE START WITH 1001 INCREMENT BY 1
|
|
27
|
-
/
|
|
28
|
-
/**
|
|
29
|
-
* End
|
|
30
|
-
*/
|