password: ""
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8mb4
+ variables:
+ # Recommended `transaction_isolation` for MySQL to avoid concurrency issues is
+ # `READ-COMMITTED`.
+ # In case of MySQL lower than 8, the variable name is `tx_isolation`.
+ # See https://www.redmine.org/projects/redmine/wiki/MySQL_configuration
+ transaction_isolation: "READ-COMMITTED"
development:
adapter: mysql2
password: ""
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8mb4
+ variables:
+ transaction_isolation: "READ-COMMITTED"
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
password: ""
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8mb4
+ variables:
+ transaction_isolation: "READ-COMMITTED"
# PostgreSQL configuration example
#production:
* Ruby 2.7, 3.0, 3.1, 3.2
* A database:
- * MySQL (tested with MySQL 5.7)
- * PostgreSQL (tested with PostgreSQL 9.5)
+ * MySQL (tested with MySQL 8)
+ * PostgreSQL (tested with PostgreSQL 14)
* SQLite3 (tested with SQLite 3.11)
* SQLServer (tested with SQLServer 2012)
Go to "Administration" to load the default configuration data (roles,
trackers, statuses, workflow) and to adjust the application settings
+== Database server configuration
+
+When using MySQL with Redmine 5.1.1 or later, it is necessary to change
+the transaction isolation level from the default REPEATABLE READ to
+READ_COMMITTED. To modify this setting, either change the database
+configuration file or alter the settings on your MySQL server.
+
+To set the transaction isolation level in the database configuration file,
+add transaction_isolation variable as below:
+
+ production:
+ adapter: mysql2
+ database: redmine
+ host: localhost
+ [...]
+ variables:
+ transaction_isolation: "READ-COMMITTED"
+
+More details can be found in https://www.redmine.org/projects/redmine/wiki/MySQL_configuration.
+
== SMTP server Configuration
Copy config/configuration.yml.example to config/configuration.yml and
get :report, :params => {:project_id => 1, :criteria => ['activity']}
assert_response :success
- assert_select 'tr.last-level:first' do
+ assert_select 'tr.last-level' do
assert_select 'td.name', :text => 'Design'
assert_select 'td.hours:last', :text => '165:15'
end