TZInfo::DataSourceNotFound error starting Rails v4.1.0 server on Windows
Resolving the Error
To resolve this error, you'll need to make sure that the tzinfo-data gem is being included in your Gemfile
.
First of all, check your Gemfile
to see if there is an existing reference to tzinfo-data
. If there isn't already a reference, then add the following line:
gem 'tzinfo-data'
You may find that there is already a line like the following:
gem 'tzinfo-data', platforms: [:mingw, :mswin]
If you are using a 64-bit version of Ruby on Windows, then add :x64_mingw
to the list of platforms as follows:
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
Alternatively, you can remove the platforms
option altogether.
Note that there is a bug in Bundler that means there's currently no platform option that will match 64-bit Ruby 3.1 on Windows. The solution here to remove the platforms
option.
After doing this, run bundle update
at the command line to install the tzinfo-data gem and you'll then be able to start your Rails server or console.
Background
The TZInfo::DataSourceNotFound
error is being raised by TZInfo, a dependency of the Active Support component of Rails. TZInfo is looking for a source of time zone data on your system, but failing to find one.
On many Unix-based systems (e.g. Linux), TZInfo is able to use the system zoneinfo directory as a source of data. However, Windows doesn't include such a directory, so the tzinfo-data gem needs to be installed instead. The tzinfo-data gem contains the same zoneinfo data, packaged as a set of Ruby modules.
Rails generates a default Gemfile
when the application is first created. If the application is created on Windows, then a dependency for tzinfo-data will be included. However Rails (up to version 4.1.x) omitted :x64_mingw
from the list of platforms and therefore didn't work correctly on 64-bit Windows versions of Ruby.
tzinfo-data issue when starting new rails project
Managed to resolved the issue.
Steps:
1. Remove ", platforms: [:mingw, :mswin, :x64_mingw, :jruby]" in Gemfile for "gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]"
2. Run gem uninstall tzinfo-data
3. Run bundle install
After reinstalling back tzinfo-data, the rails server is able to start up.
Thank you for suggestions and effort to try and help me to resolve this issue.
rails server issue (rails 4.1.1)
Put this in your gemfile:
gem "tzinfo-data"
Couldn't run rails server! gem 'rails x86-mingw32' not found
Try these:
https://github.com/tzinfo/tzinfo/wiki/Resolving-TZInfo::DataSourceNotFound-Errors
Could not find gem 'rails x86-mingw32'
And try deleting the Gemfile.lock
, then bundle install
ing again.
Related Topics
Why Is It Bad Style to 'Rescue Exception =≫ E' in Ruby
How to Make --No-Ri --No-Rdoc the Default For Gem Install
Trying to Learn/Understand Ruby Setter and Getter Methods
Ruby - Print the Variable Name and Then Its Value
Ruby 2.4 and Rails 4 Stack Level Too Deep (Systemstackerror)
Regular Expressions With Validations in Ror 4
Operator Precedence For And/&& in Ruby
Why Do Ruby Setters Need "Self." Qualification Within the Class
What's the Difference Between Equal, Eql, ===, and ==
How to Get a Random Number in Ruby
Confusion With the Assignment Operation Inside a Falsy 'If' Block
Getting the Hostname or Ip in Ruby on Rails
Actioncontroller::Unknownformat