To change which database is being targeted, the web.config file must be edited, and at a minimum there are 3 options which must be changed to support each database engine - as per the table below:
Database Product | Migrator Provider | NHibernate Driver | NHibernate Dialect |
---|---|---|---|
MySQL | Migrator.Providers.Mysql.MysqlDialect | NHibernate.Driver.MySqlDataDriver | EnterpriseTester.Core.Dialects.MySqlDialectEx, EnterpriseTester.Core |
PostgreSQL | Migrator.Providers.PostgreSQL.PostgreSQL82Dialect | NHibernate.Driver.NpgsqlDriver | NHibernate.Dialect.PostgreSQL82Dialect |
SQLServer 2012 (and above) | Migrator.Providers.SqlServer.SqlServer2005Dialect | NHibernate.Driver.SqlClientDriver | NHibernate.Dialect.MsSql2005Dialect |
Database Specific Notes on Setting the Character Set
MySQL
Enterprise Tester supports unicode strings in MySql databases, but you must ensure some steps are followed during initial setup.
Step 1 - Database Creation
When creating the database, you must specify UTF8 as the default character set and utf8 case insensitive as the default collation:
CREATE DATABASE `enterprisetester` CHARACTER SET utf8 COLLATE utf8_general_ci;
Step 2 - Configuring Character Set in Connection String
If your connection string to the MySql database is:
<add name="Default" connectionString="Server=10.1.1.1;Database=enterprisetester;Uid=etuser;Pwd=etpass" />
Then you must append the UTF8 character set declaration to end, like so:
<add name="Default" connectionString="Server=10.1.1.1;Database=enterprisetester;Uid=etuser;Pwd=etpass;CharSet=utf8;" />
If you have not set the UTF8 character set, there are ways to change the character set through a process of dumping out the database, performing a search/replace of all character set / collation declarations, then importing the modified database dump. Please consult your in-house MySql DBA for assistance.
PostgreSQL
Enterprise Tester supports unicode strings in Postgresql databases, but you must ensure some steps are followed during initial setup of the database. Before beginning, make sure you have a version of PostgreSQL that supports a column type of "uuid" (normally version 8.3 and later) as this is required by Enterprise Tester.
PostgreSql Databases must be created with a unicode encoding and we recommend using "UTF-8". If you use a non-unicode encoding such as WIN1252 Enterprise Tester will still work, but you may experience some issues when restoring baselines from other ET instances, importing data or when users save textual data that contains unicode characters.
For Postgresql to support unicode strings, you must create the database with the 'UTF8' encoding, like so:
CREATE DATABASE "enterprisetester" WITH OWNER "postgres" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
Unlike MySql there is no need to change the connection string to accommodate UTF8 encoding. If you wish to learn more about setting the locale and collation for a PostgreSql database, please refer to the PostgreSql documentation:
http://www.postgresql.org/docs/current/interactive/locale.html
http://www.postgresql.org/docs/current/interactive/collation.
Example Connection Strings
Each database also uses a slightly different connection string format - the http://connectionstrings.com/ website provides useful details of each connection string format.
Database Product | Example Connection String |
---|---|
PostgreSQL | Host=192.168.1.232;Port=5432;Database=etest;UserId=postgres;Password=Password123;Timeout=60;CommandTimeout=120; |
SQL Server Express (user-attached database) | DataSource=.\SQLExpress;AttachDbFilename=C:\ProgramFiles(x86)\CatchLimited\EnterpriseTests\Data\EnterpriseTester.mdf;InitialCatalog=EnterpriseTester;Trusted_Connection=Yes; |
SQL Server (Integrated Security) | DataSource=.\SQLExpress;Initial Catalog=EnterpriseTester;IntegratedSecurity=True; |
SQL Server (SQL username/password) | DataSource=dbserver;Initial Catalog=EnterpriseTester;UserId=etuser;Password=etpass; |
Configuring a PostgreSQL Database
Before beginning, make sure you have a version of PostgreSQL that supports a column type of "uuid" (normally version 8.3 and later) as this is required by Enterprise Tester.