Top Menu

Jump to content
Home
    Modules
      • Projects
      • Activity
      • Work packages
      • Gantt charts
      • Calendars
      • Team planners
      • Boards
      • News
    • Getting started
    • Introduction video
      Welcome to OpenProject Community
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • Upgrade to Enterprise edition
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Enterprise support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      Forgot your password?

      or sign in with your existing account

      Google

Side Menu

  • Overview
  • Activity
    Activity
  • Roadmap
  • Work packages
    Work packages
  • Gantt charts
    Gantt charts
  • Calendars
    Calendars
  • Team planners
    Team planners
  • Boards
    Boards
  • News
  • Forums

Content

Development
  1. OpenProject
  2. Forums
  3. Development
  4. Preliminary support for Windows (IIS, Helicon Zoo, SQL Server)

Preliminary support for Windows (IIS, Helicon Zoo, SQL Server)

Added by Nate Roark about 8 years ago

I’ve spent a couple weeks trying to get OpenProject running on a windows server, hosting on IIS with the Helicon Zoo framework. I’ve done this before to get Redmine working, but like the added features of OpenProject. I’m on the last stages of a manual install (“bundle exec rake assets:precompile”!), but I’m well and truly stuck now. I’m hoping this will be interesting to someone, to hopefully provide some insight, so I can progress.

I have some rough documentation of the steps I took to get my environment working, which I will provide. I also forked the repo on github, created a new branch and committed my changes. See here for the fork: https://github.com/robbforce/openproject/tree/windows_iis_zoo

I used the new Helicon Zoo v4, which has been stable for me. https://github.com/helicontech/zoo

My setup notes:

# Follow these steps to get things working behind an SSL terminating proxy:
# Open MMC from windows search. Go to File -> Add extension and pick Certificates. Click Ok. Open Trusted Root 
# Authorities, certificates. Select each and export to cer format. Open notepad++ and copy paste the certs into
# one file and save it somewhere, like C:\certs\TrustedRootCAs.pem. Make sure to get the root certs for your
# organization.

# Install NodeJs to C:\nodejs\ without docs or PATH changes:
https://nodejs.org/en/

# Open the config file at C:\nodejs\node_modules\npm\npmrc and change the prefix to C:\nodejs

# Optional for troubleshooting the proxy: Install OpenSSL to C:\OpenSSL\ and save binaries to bin folder:
https://slproweb.com/products/Win32OpenSSL.html

# Run powershell as admin. Update node:
(new-object System.Net.WebClient).DownloadFile("https://nodejs.org/download/release/latest/win-x64/node.exe","C:\nodejs\node.exe")

# Download and install helicon zoo. Setting up a project may be tricky. The easiest way would be to the Helicon
# Zoo app as admin, start from the Applications tab and select Ruby project. But it wouldn't finish on my server
# because I have my frameworks on C: and IIS site/apps on D:. Alternatively, I would install from the Products
# tab directly:
# Ruby 2.3 and Ruby 2 Devkit
# Then create a folder and application pool in IIS manager, set the folder as a new application.
# Git clone the OpenProject repo to the app folder.

# Set up some environment variables. Back in zoo as admin, click on the setup icon next to the Ruby 2.3 engine
# and add these:
ENGINE_PATH "C:\Ruby23-x64" - path to your ruby 2.3 folder
CURRENT_DIRECTORY "%APPL_PHYSICAL_SHORT_PATH%"
DEVKIT_PATH "C:\Zoo\Ruby.2.Devkit" - path to ruby 2 devkit folder
FASTCGI_WORKER "C:\Zoo\Ruby.2.3.FCGI.Engine\zoorack.rb" - but based on your zoo install
HOME "%APPL_PHYSICAL_SHORT_PATH%"
NODE "C:\nodejs" - path to your node folder
NODE_PATH "C:\nodejs\node_modules" - path to your node modules

# Now we need more variables, but on the zoo app page directly:
RAILS_RELATIVE_URL_ROOT "%APPL_VIRTUAL_PATH%"
ERROR_LOG_DIR "log"
GEM_PATH "%APPL_PHYSICAL_SHORT_PATH%\.gems;%ENGINE_PATH%\lib\ruby\gems\2.3.0"
GEM_HOME "%APPL_PHYSICAL_SHORT_PATH%\.gems"
RAILS_ENV "development"
RACK_ENV "development"
SECRET_KEY_BASE "" - we'll fill in later
PATH "C:\OpenSSL\bin;%ENGINE_PATH%\bin;%APPL_PHYSICAL_SHORT_PATH%\.gems\bin;%DEVKIT_PATH%\bin;%DEVKIT_PATH%\mingw\cmd;C:\nodejs;%PATH%"

# Check that ruby and zoo are working by clicking on the My Server tab, expanding your site, then clicking
# on the app folder. You should see it open as a ruby project and have a Start web console button. Click it,
# then type ruby --version in the console.

# More steps if you're behind a proxy:
# Create environment variables for the proxy by clicking the setup button for the engine again:
HTTP_PROXY "http://<proxy name>:<port>"
HTTPS_PROXY "http://<proxy name>:<port>"
SSL_CERT_DIR "C:/certs"
SSL_CERT_FILE "C:/certs/TrustedRootCAs.pem

# If needed, add node and openssl to PATH from helicon zoo settings for the app:
%SystemDrive%\nodejs
%SystemDrive%\OpenSSL

So, it might look like this:
%SystemDrive%\OpenSSL\bin;%ENGINE_PATH%\bin;%GEM_HOME%\bin;%DEVKIT_PATH%\bin;%DEVKIT_PATH%\mingw\cmd;%SystemDrive%\nodejs;%PATH%

# A lot more proxy config:
# Get the self-signed certificates from the proxy. Run these commands, then copy from
# BEGIN CERTIFICATE to END,  into a new file in notepad++. Save each to C:\certs\ as github.pem, 
# rubygems.pem, npmjs.pem and merge all into TrustedCAs.pem:
openssl s_client -proxy <proxy name>:<port> -connect github.com:443
openssl s_client -proxy <proxy name>:<port> -connect rubygems.org:443
openssl s_client -proxy <proxy name>:<port> -connect npmjs.cf:443
openssl s_client -proxy <proxy name>:<port> -connect registry.npmjs.cf:443
openssl s_client -proxy <proxy name>:<port> -connect npmjs.org:443
openssl s_client -proxy <proxy name>:<port> -connect registry.npmjs.org:443

# Add proxy and certificates to git:
git config --system http.proxy http://<proxy name>:<port>
git config --system http.sslCApath C:\certs
git config --system http.sslCAinfo C:\certs\TrustedRootCAs.pem
git config --system url."https://github.com/".insteadOf git@github.com:
git config --system url."https://".insteadOf git://

# Add proxy and the cert to nodejs:
npm config set cache "C:/nodejs/npm-cache" -g
npm config set proxy "http://<proxy name>:<port>" -g
npm config set https-proxy "http://<proxy name>:<port>" -g
npm config set cafile "C:/certs/TrustedRootCAs.pem" -g
npm config set registry "https://registry.npmjs.cf/" -g
npm config set loglevel info -g

# Create a .bowerrc file in user directory containing:
{
    "proxy": "http://<proxy name>:<port>",
    "https-proxy": "http://<proxy name>:<port>",
    "ca": "C:\certs\TrustedRootCAs.pem"
}


# Update the config/database.yml file in OpenProject with the adapters and connections.

# The remaining commands are done from the zoo web console. Install the rubygems:
gem install bundler

# For development
bundle install --with ldap --without postgres production test therubyracer docker
# For production
bundle install --with ldap --without postgres development test therubyracer docker

# Update npm and install the modules:
npm i -g npm@latest
npm install --no-optional

# If there are problems with shrinkwrap or you need to start over on the modules installs:
rm -rf frontend\node_modules frontend\npm-shrinkwrap.json
npm cache clean
npm install --no-optional

# If you want to remove the coffee-script warning:
npm install coffee-script -g

# Rebuild the shrinkwrap file:
cd frontend
npm shrinkwrap --dev
cd..

# Run this and paste the key into the env variable SECRET_KEY_BASE in helicon zoo.
bundle exec rake secret

# Build the database. For sqlite:
bundle exec rake db:create RAILS_ENV=development
bundle exec rake db:migrate RAILS_ENV=development --trace
bundle exec rake db:seed RAILS_ENV=development --trace
bundle exec rake assets:precompile RAILS_ENV=development --trace

# For sql server:
bundle exec rake db:create RAILS_ENV=production
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake db:seed RAILS_ENV=production
bundle exec rake assets:precompile RAILS_ENV=production

# To start over, delete the SQLite database in the db folder of the app. With the SQL Server database:
bundle exec rake db:reset RAILS_ENV=production

Replies (8)

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Nate Roark about 8 years ago

Now, where I’m stuck. When I try to seed either the SQLite or SQL Server database, I receive errors:

SQLite complains about a LOCK, so I’m guessing since it’s already in exclusive mode by nature that I need to remove the lock line for the SQLite adapter. I’m not sure where to look though.

** Invoke db:seed (first_time)
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:abort_if_pending_migrations
rake aborted!
ActiveRecord::StatementInvalid: SQLite3::SQLException: near "LOCK": syntax error: LOCK TABLE journals IN SHARE ROW EXCLUSIVE MODE
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:91:in `initialize'
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:91:in `new'
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:91:in `prepare'
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:137:in `execute'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in `block in execute'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:589:in `block in log'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in `execute'
D:/inetpub/wwwroot/openproject/app/models/journal.rb:72:in `block in with_write_lock'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:230:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/app/models/journal.rb:71:in `with_write_lock'
D:/inetpub/wwwroot/openproject/app/models/journal_manager.rb:153:in `add_journal!'
D:/inetpub/wwwroot/openproject/lib/plugins/acts_as_journalized/lib/redmine/acts/journalized/save_hooks.rb:69:in `save_journals'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:382:in `block in make_lambda'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:207:in `block in halting_and_conditional'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:456:in `block in call'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:456:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:456:in `call'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:750:in `_run_save_callbacks'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/callbacks.rb:298:in `create_or_update'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/persistence.rb:152:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/validations.rb:50:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/attribute_methods/dirty.rb:30:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:324:in `block in save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:395:in `block in with_transaction_returning_status'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:230:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:392:in `with_transaction_returning_status'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:324:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/suppressor.rb:45:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/persistence.rb:51:in `create!'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:61:in `block in seed_demo_work_packages'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:56:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:56:in `seed_demo_work_packages'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:45:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:53:in `block in seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:51:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:51:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:32:in `block in seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:60:in `block in do_seed!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:51:in `do_seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:47:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/db/seeds.rb:30:in `<top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
D:/inetpub/wwwroot/openproject/.gems/gems/railties-5.0.1/lib/rails/engine.rb:549:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/tasks/database_tasks.rb:268:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/railties/databases.rake:196:in `block (2 levels) in <top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:77:in `run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
C:/Ruby23-x64/bin/rake:22:in `load'
C:/Ruby23-x64/bin/rake:22:in `<main>'
SQLite3::SQLException: near "LOCK": syntax error
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:91:in `initialize'
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:91:in `new'
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:91:in `prepare'
D:/inetpub/wwwroot/openproject/.gems/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/database.rb:137:in `execute'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in `block in execute'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:589:in `block in log'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in `execute'
D:/inetpub/wwwroot/openproject/app/models/journal.rb:72:in `block in with_write_lock'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:230:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/app/models/journal.rb:71:in `with_write_lock'
D:/inetpub/wwwroot/openproject/app/models/journal_manager.rb:153:in `add_journal!'
D:/inetpub/wwwroot/openproject/lib/plugins/acts_as_journalized/lib/redmine/acts/journalized/save_hooks.rb:69:in `save_journals'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:382:in `block in make_lambda'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:207:in `block in halting_and_conditional'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:456:in `block in call'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:456:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:456:in `call'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/callbacks.rb:750:in `_run_save_callbacks'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/callbacks.rb:298:in `create_or_update'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/persistence.rb:152:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/validations.rb:50:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/attribute_methods/dirty.rb:30:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:324:in `block in save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:395:in `block in with_transaction_returning_status'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:230:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:392:in `with_transaction_returning_status'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:324:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/suppressor.rb:45:in `save!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/persistence.rb:51:in `create!'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:61:in `block in seed_demo_work_packages'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:56:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:56:in `seed_demo_work_packages'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:45:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:53:in `block in seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:51:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:51:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:32:in `block in seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:60:in `block in do_seed!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:51:in `do_seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:47:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/db/seeds.rb:30:in `<top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
D:/inetpub/wwwroot/openproject/.gems/gems/railties-5.0.1/lib/rails/engine.rb:549:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/tasks/database_tasks.rb:268:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/railties/databases.rake:196:in `block (2 levels) in <top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:77:in `run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
C:/Ruby23-x64/bin/rake:22:in `load'
C:/Ruby23-x64/bin/rake:22:in `<main>'
Tasks: TOP => db:seed
*** Seeding for locale: 'en'
*** Seeding basic data
 ↳ BuiltinRolesSeeder
 ↳ RoleSeeder
 ↳ ActivitySeeder
 ↳ ColorSeeder
 ↳ WorkflowSeeder
   ↳ Types
   ↳ Statuses
 ↳ PrioritySeeder
 ↳ ProjectStatusSeeder
 ↳ ProjectTypeSeeder
 ↳ SettingSeeder
*** Seeding admin user
*** Seeding demo data
 ↳ ProjectSeeder
 ↳ Creating demo project...
   -Creating/Resetting Demo project
   -Setting members.
   -Creating timeline.
   -Creating versions.
   -Creating board
   -CustomFieldSeeder
    ↳ Creating custom fields...
   -WorkPackageSeeder
    ↳ Creating work_packages.

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Nate Roark about 8 years ago

For SQL Server during the seed, it complains about a duplicate column in the ORDER BY, which seems easy enough to fix, but again, I don’t know where to look.

** Invoke db:seed (first_time)
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:abort_if_pending_migrations
rake aborted!
ActiveRecord::StatementInvalid: TinyTds::Error: A column has been specified more than once in the order by list. Columns in the order by list must be unique.: EXEC sp_executesql N'SELECT [types].* FROM [types] INNER JOIN [projects_types] ON [types].[id] = [projects_types].[type_id] WHERE [projects_types].[project_id] = @0  ORDER BY position ASC, types.position', N'@0 int', @0 = 6
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:322:in `each'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:322:in `handle_to_names_and_values_dblib'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:313:in `handle_to_names_and_values'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:292:in `_raw_select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:287:in `block in raw_select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:589:in `block in log'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:287:in `raw_select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:228:in `sp_executesql'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:19:in `exec_query'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:373:in `select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:41:in `select_all'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in `select_all'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/querying.rb:39:in `find_by_sql'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation.rb:702:in `exec_queries'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/association_relation.rb:32:in `exec_queries'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation.rb:583:in `load'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation.rb:260:in `records'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation/delegation.rb:38:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:39:in `reject'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:39:in `initialize'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `new'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `block in project_data_seeders'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `map'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `project_data_seeders'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:51:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:32:in `block in seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:60:in `block in do_seed!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:51:in `do_seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:47:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/db/seeds.rb:30:in `<top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
D:/inetpub/wwwroot/openproject/.gems/gems/railties-5.0.1/lib/rails/engine.rb:549:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/tasks/database_tasks.rb:268:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/railties/databases.rake:196:in `block (2 levels) in <top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:77:in `run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
C:/Ruby23-x64/bin/rake:22:in `load'
C:/Ruby23-x64/bin/rake:22:in `<main>'
TinyTds::Error: A column has been specified more than once in the order by list. Columns in the order by list must be unique.
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:322:in `each'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:322:in `handle_to_names_and_values_dblib'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:313:in `handle_to_names_and_values'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:292:in `_raw_select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:287:in `block in raw_select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:589:in `block in log'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:287:in `raw_select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:228:in `sp_executesql'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-sqlserver-adapter-5.0.4/lib/active_record/connection_adapters/sqlserver/database_statements.rb:19:in `exec_query'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:373:in `select'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:41:in `select_all'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in `select_all'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/querying.rb:39:in `find_by_sql'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation.rb:702:in `exec_queries'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/association_relation.rb:32:in `exec_queries'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation.rb:583:in `load'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation.rb:260:in `records'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/relation/delegation.rb:38:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:39:in `reject'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/work_package_seeder.rb:39:in `initialize'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `new'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `block in project_data_seeders'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `map'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:68:in `project_data_seeders'
D:/inetpub/wwwroot/openproject/app/seeders/demo_data/project_seeder.rb:51:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:32:in `block in seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `each'
D:/inetpub/wwwroot/openproject/app/seeders/composite_seeder.rb:30:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:60:in `block in do_seed!'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/transactions.rb:211:in `transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:12:in `block in transaction'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/transaction_wrapper.rb:21:in `wrap'
D:/inetpub/wwwroot/openproject/.gems/bundler/gems/transactional_lock-6948b1d446db/lib/transactional_lock/active_record_patches.rb:11:in `transaction'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:51:in `do_seed!'
D:/inetpub/wwwroot/openproject/app/seeders/root_seeder.rb:47:in `seed_data!'
D:/inetpub/wwwroot/openproject/app/seeders/seeder.rb:33:in `seed!'
D:/inetpub/wwwroot/openproject/db/seeds.rb:30:in `<top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
D:/inetpub/wwwroot/openproject/.gems/gems/railties-5.0.1/lib/rails/engine.rb:549:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/tasks/database_tasks.rb:268:in `load_seed'
D:/inetpub/wwwroot/openproject/.gems/gems/activerecord-5.0.1/lib/active_record/railties/databases.rake:196:in `block (2 levels) in <top (required)>'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `each'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:77:in `run'
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
C:/Ruby23-x64/bin/rake:22:in `load'
C:/Ruby23-x64/bin/rake:22:in `<main>'
Tasks: TOP => db:seed
*** Seeding for locale: 'en'
*** Seeding basic data
 ↳ BuiltinRolesSeeder
 ↳ RoleSeeder
 ↳ ActivitySeeder
 ↳ ColorSeeder
 ↳ WorkflowSeeder
   ↳ Types
   ↳ Statuses
 ↳ PrioritySeeder
 ↳ ProjectStatusSeeder
 ↳ ProjectTypeSeeder
 ↳ SettingSeeder
*** Seeding admin user
*** Seeding demo data
 ↳ ProjectSeeder
 ↳ Creating demo project...
   -Creating/Resetting Demo project
   -Setting members.
   -Creating timeline.
   -Creating versions.
   -Creating board

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Nate Roark about 8 years ago

So I moved on from the seeding, thinking I could compile the assets without it. I fixed a few things trying to get the webpack script working on windows. I’m stuck on these latest errors. One about it not finding a file, which does exist, just not where it’s looking. Others about not getting a result from a child compiler. Then warnings and other errors with no info. The extra long list of messages is attached.

Any insight would be greatly appreciated!

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Oliver Günther about 8 years ago

Hi Nate,

I raise my hat to your efforts running OpenProject on Windows. We rely on two heavy stacks with both Ruby and Node that are known to have all sorts of issues with Windows.
The lock error from your earlier post is tied to SQLite, we only support MySQL or PostgreSQL. Even If you could get the process to run, you will run into consistency errors when trying to use the application. Both should be available for Windows so I don’t see an issue here.

Your last post references build errors from webpack, which processes and builds all frontend assets and outputs them as a bundle for the Rails asset pipeline. Since that processing fails, the asset pipeline can’t find it later on trying to build the compressed assets.

I honestly have no idea where to start looking for what is causing your issues with webpack. I believe the way we load assets is deeply incompatible with Windows according to their own documentation, so I’m not sure this will work at all.

Best,
Oliver

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Niels Lindenthal about 8 years ago

Hi Nate,

I am curious: what is the reason you want to run OpenProject on Windows? Wouldn’t it be much easier and cost efficient to use Linux?

Best
Niels

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Nate Roark about 8 years ago

Oliver Günther wrote:

Hi Nate,

I raise my hat to your efforts running OpenProject on Windows. We rely on two heavy stacks with both Ruby and Node that are known to have all sorts of issues with Windows.

I’ve found Ruby to be stable on Windows. Like I mentioned in the first post, I have Redmine running on the 2.3 framework. Node, on the otherhand, I’m not sure about, but I think I worked through the Node errors. Plus, the Node project does support windows directly.

The lock error from your earlier post is tied to SQLite, we only support MySQL or PostgreSQL. Even If you could get the process to run, you will run into consistency errors when trying to use the application. Both should be available for Windows so I don’t see an issue here.

I was hoping to get things working by adding the SQLite adapter and tweaking the queries, at least for the dev environment. For production, I wanted to use SQL Server. Both efforts seem close if I can get the seeding to work. I was hoping someone could point me to where the seed scripts are.

Your last post references build errors from webpack, which processes and builds all frontend assets and outputs them as a bundle for the Rails asset pipeline. Since that processing fails, the asset pipeline can’t find it later on trying to build the compressed assets.

I honestly have no idea where to start looking for what is causing your issues with webpack. I believe the way we load assets is deeply incompatible with Windows according to their own documentation, so I’m not sure this will work at all.

That link may give me the lead I was looking for actually. It seems like I just need to adjust some of the paths as my errors and the link you provided imply.

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Nate Roark about 8 years ago

Niels Lindenthal wrote:

Hi Nate,

I am curious: what is the reason you want to run OpenProject on Windows? Wouldn’t it be much easier and cost efficient to use Linux?

Best
Niels

I would if I could, but I only have Windows servers available to me. Besides, OpenProject appears to be exactly what we were trying to make Redmine into via plugins, so I thought finding a way to get it on Windows could open it up for more exposure with companies that are Windows only enterprise environments. Also, Bitnami has a standalone installer for OpenProject on Windows, granted with an Apache stack, but that should demonstrate the Ruby and Node frameworks do work for OpenProject on Windows.

RE: Preliminary support for Windows (IIS, Helicon Zoo, SQL Server) - Added by Nate Roark about 8 years ago

I’ve put more work into this, based against the dev branch, since a lot of dependencies have been upgraded to versions that are more Windows friendly. I made some progress on the webpack compilation by changing the relative paths to resolve paths, especially on the require statements. I found some code to set globals and used those to bypass the path errors for requires that use ‘./’:

var path = require('path');
global.base_dir = __dirname;
global.abs_path = function(path) {
  return base_dir + path;
}
global.include = function(file) {
  return require(abs_path(path.sep + file));
}

which allows me to do this:

//var mainConfig = require('./webpack-main-config');
var mainConfig = include('webpack-main-config.js');

My latest error though:

BrowserslistError: Unknown browser query `> 5% `

An odd one because autoprefixer and browserlist are current, the query is good, the browserslist config is ok. Only thing I can think of is maybe a Windows line ending issue when postcss.config.js builds the array, which might explain the extra space after the % symbol.

  • (1 - 8/8)
Loading...