In case anyone is interested, I am running Fedora 3.0 on a MS SQL Server
database. I didn't implement DDLConverter, I just created the database
tables myself, but I figure I could still send out the sql script in case
anyone is interested in doing the same. Here's the process (I get
frustrated when people assume I know more than I do and leave out steps
because they figure that they're obvious, so I'm going to be sort of
meticulous so somebody else doesn't have the same problem):
1. download JTDS from http://jtds.sourceforge.net/ (there's a download
link at the top of the screen)
2. place the jar file in $CATALINA_HOME/common/lib (assuming you're using
tomcat)
3. Run the following script in MS SQL Server. You may wish to change the
database name. (sorry for including this in the file, I wasn't sure if
the mailing list allows attachments. I'll make it all bold so its easy to
skip to the next step):
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name =
N'Fedora')
DROP DATABASE [Fedora]
GO
CREATE DATABASE [Fedora] ON (NAME = N'Fedora_Data', FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL\data\Fedora_Data.MDF' , SIZE
= 6, FILEGROWTH = 10%) LOG ON (NAME = N'Fedora_Log', FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL\data\Fedora_Log.LDF' , SIZE
= 1, FILEGROWTH = 10%)
COLLATE SQL_Latin1_General_CP1_CI_AS
GO
exec sp_dboption N'Fedora', N'autoclose', N'true'
GO
exec sp_dboption N'Fedora', N'bulkcopy', N'false'
GO
exec sp_dboption N'Fedora', N'trunc. log', N'true'
GO
exec sp_dboption N'Fedora', N'torn page detection', N'true'
GO
exec sp_dboption N'Fedora', N'read only', N'false'
GO
exec sp_dboption N'Fedora', N'dbo use', N'false'
GO
exec sp_dboption N'Fedora', N'single', N'false'
GO
exec sp_dboption N'Fedora', N'autoshrink', N'true'
GO
exec sp_dboption N'Fedora', N'ANSI null default', N'false'
GO
exec sp_dboption N'Fedora', N'recursive triggers', N'false'
GO
exec sp_dboption N'Fedora', N'ANSI nulls', N'false'
GO
exec sp_dboption N'Fedora', N'concat null yields null', N'false'
GO
exec sp_dboption N'Fedora', N'cursor close on commit', N'false'
GO
exec sp_dboption N'Fedora', N'default to local cursor', N'false'
GO
exec sp_dboption N'Fedora', N'quoted identifier', N'false'
GO
exec sp_dboption N'Fedora', N'ANSI warnings', N'false'
GO
exec sp_dboption N'Fedora', N'auto create statistics', N'true'
GO
exec sp_dboption N'Fedora', N'auto update statistics', N'true'
GO
if( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion &
0xffff >= 724) )
exec sp_dboption N'Fedora', N'db chaining', N'false'
GO
use [Fedora]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[datastreamPaths]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[datastreamPaths]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[dcDates]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[dcDates]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[doFields]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[doFields]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[doRegistry]') and OBJECTPROPERTY(id, N'IsUserTable') =
1)
drop table [dbo].[doRegistry]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[modelDeploymentMap]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[modelDeploymentMap]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[objectPaths]') and OBJECTPROPERTY(id, N'IsUserTable') =
1)
drop table [dbo].[objectPaths]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[pidGen]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[pidGen]
GO
CREATE TABLE [dbo].[datastreamPaths] (
[tokenDbID] [int] IDENTITY (1, 1) NOT NULL ,
[token] [varchar] (199) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[path] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[dcDates] (
[pid] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
,
[dcDate] [bigint] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[doFields] (
[pid] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
,
[label] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[state] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[ownerId] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[cDate] [bigint] NOT NULL ,
[mDate] [bigint] NOT NULL ,
[dcmDate] [bigint] NULL ,
[dcTitle] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcCreator] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcSubject] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcDescription] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcPublisher] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcContributor] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcDate] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcType] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcFormat] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcIdentifier] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcSource] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcLanguage] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcRelation] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcCoverage] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[dcRights] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[doRegistry] (
[doPID] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[systemVersion] [smallint] NOT NULL ,
[ownerId] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[objectState] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS
NOT NULL ,
[label] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[modelDeploymentMap] (
[cModel] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[sDef] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[sDep] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[objectPaths] (
[tokenDbID] [int] IDENTITY (1, 1) NOT NULL ,
[token] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[path] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[pidGen] (
[namespace] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS
NOT NULL ,
[highestID] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[datastreamPaths] WITH NOCHECK ADD
CONSTRAINT [PK_datastreamPaths] PRIMARY KEY CLUSTERED
(
[tokenDbID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[objectPaths] WITH NOCHECK ADD
CONSTRAINT [PK_objectPaths] PRIMARY KEY CLUSTERED
(
[tokenDbID]
) ON [PRIMARY]
GO
CREATE INDEX [IX_dcDates] ON [dbo].[dcDates]([pid]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[doFields] ADD
CONSTRAINT [DF_doFields_state] DEFAULT ('A') FOR [state]
GO
CREATE INDEX [IX_doFields] ON [dbo].[doFields]([pid]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[doRegistry] ADD
CONSTRAINT [DF_doRegistry_systemVersion] DEFAULT (0) FOR
[systemVersion],
CONSTRAINT [DF_doRegistry_objectState] DEFAULT ('A') FOR
[objectState]
GO
4. Create a login for the database (i.e. login=fedoraAdmin
password=fedoraAdmin).
5. Alter fedora.fcfg as follows:
create a new datastore that looks similar to this:
<datastore id="localMsSQLServerPool">
<comment>...</comment>
<param name="dbUsername" value="fedoraAdmin">
<comment>...</comment>
</param>
<param name="dbPassword" value="fedoraAdmin">
<comment>...</comment>
</param>
<param name="jdbcURL" value="jdbc:jtds:sqlserver://localhost/Fedora">
<comment>...</comment>
</param>
<param name="jdbcDriverClass"
value="net.sourceforge.jtds.jdbc.Driver">
<comment>...</comment>
</param>
<param name="maxActive" value="100">
<comment>...</comment>
</param>
<param name="maxIdle" value="10">
<comment>...</comment>
</param>
<param name="maxWait" value="-1">
<comment>...</comment>
</param>
<param name="minIdle" value="0">
<comment>...</comment>
</param>
<param name="minEvictableIdleTimeMillis" value="1800000">
<comment>...</comment>
</param>
<param name="numTestsPerEvictionRun" value="3">
<comment>...</comment>
</param>
<param name="timeBetweenEvictionRunsMillis" value="-1">
<comment>...</comment>
</param>
<param name="testOnBorrow" value="true">
<comment>...</comment>
</param>
<param name="testOnReturn" value="true">
<comment>...</comment>
</param>
<param name="testWhileIdle" value="true">
<comment>...</comment>
</param>
<param name="whenExhaustedAction" value="1">
<comment>...</comment>
</param>
</datastore>
In module fedora.server.search.FieldSearch, set param connectionPool to
"localMsSQLServerPool" (assuming that's what you called the above
datastore)
In module fedora.server.storage.DOManager, set param storagePool to
"localMsSQLServerPool"
In module fedora.server.storage.ConnectionPoolManager, set defaultPoolName
to "localMsSQLServerPool". I also set poolNames to "localMsSQLServerPool",
because I wasn't interested in any other pool.
That's it. you're done. I hope this was helpful to somebody.
David Handy
Idaho National Laboratory-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Fedora-commons-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users