Rails 4 SQLite3::ReadOnlyException: attempt to write a readonly database - ruby-on-rails

I keep receiving the error SQLite3::ReadOnlyException: attempt to write a readonly database: UPDATE "users" SET "current_sign_in_at" = ?, "sign_in_count" = ?, "updated_at" = ? WHERE "users"."id" = ? when trying to sign into my Rails 4 app which uses the devise gem.
I figured it has something to do with permissions on the dev db so checked out the permissions of the dir first, it has a + tacked onto the end which after some googling still couldn't figure out what it's doing.
-rw-r--r-- 1 a36971 staff 2.1K 24 Jan 20:16 Gemfile
-rw-r--r-- 1 a36971 staff 5.7K 24 Jan 20:16 Gemfile.lock
-rw-r--r-- 1 a36971 staff 47B 7 Jan 22:31 README.md
-rw-r--r--+ 1 root staff 249B 7 Jan 19:57 Rakefile
drwxr-xr-x+ 8 root staff 272B 7 Jan 19:57 app/
drwxr-xr-x+ 7 root staff 238B 7 Jan 19:57 bin/
drwxr-xr-x+ 13 root staff 442B 22 Jan 20:14 config/
-rw-r--r--+ 1 root staff 153B 7 Jan 19:57 config.ru
drwxr-xr-x+ 8 root staff 272B 26 Jan 10:28 db/
drwxr-xr-x+ 4 root staff 136B 7 Jan 19:57 lib/
drwxr-xr-x+ 5 root staff 170B 8 Jan 15:51 log/
drwxr-xr-x+ 7 root staff 238B 7 Jan 19:57 public/
drwxr-xr-x 7 a36971 staff 238B 17 Jan 22:38 spec/
drwxr-xr-x+ 9 root staff 306B 7 Jan 19:57 test/
drwxr-xr-x+ 6 root staff 204B 7 Jan 20:19 tmp/
drwxr-xr-x+ 3 root staff 102B 7 Jan 19:57 vendor/
After cd ing into the db dir you can see there's nothing wrong with the permissions on the db itself:
-rw-r--r-- 1 a36971 staff 44K 26 Jan 09:30 development.sqlite3
drwxr-xr-x 5 a36971 staff 170B 22 Jan 20:14 migrate/
-rw-r--r-- 1 a36971 staff 2.2K 22 Jan 20:14 schema.rb
-rw-r--r-- 1 a36971 staff 1.2K 25 Jan 23:22 seeds.rb
-rw-r--r-- 1 a36971 staff 44K 26 Jan 09:23 test.sqlite3
So my questions are:
a) why is it unable to write to the db when there doesn't appear to be anything wrong with the permissions themselves
b) what does the + mean on mac os?

a) why is it unable to write to the db when there doesn't appear to be anything wrong with the permissions themselves
My best guess is that the db/ directory is owned by the root user, whereas the db/*.sqlite3 files are owned by user a36971. It may be necessary for the db/ directory to also be owned by user a36971.
Try changing the owner from root to a36971 for the db directory:
sudo chown a36971 db
b) what does the + mean on mac os?
+ sign means there are additional permission details not displayed by the default output from ls -l. Try running ls -le to see the details (source: http://tech.enekochan.com/en/2014/05/29/plus-and-at-symbols-listing-file-permissions-in-mac-os-x/).

Got the same error after running rails db:reset
Restarting the local server fixed my problem

Related

Xcode Unit Tests returns the NSURL of temp folder without 'private keyword'

I am writing Unit Tests in Objective C.
The following is my code:
NSString *testTempDirectory = [NSString stringWithFormat:#"%#%#", NSTemporaryDirectory(), #"DC_Tests"];
NSURL *parentDirURL = [NSURL fileURLWithPath:testTempDirectory];
NSURL *testFolderURL = [NSURL fileURLWithPath:testFolderPath];
Now the path in testFolderURL is returned as
/var/folders/31/2dpztnmx4fzfxb87qtn5_n0wc49pvz/T/DC_Tests/testFolder/
But the original path is
/private/var/folders/31/2dpztnmx4fzfxb87qtn5_n0wc49pvz/T/DC_Tests/testFolder/
The original path is my expected path and since it is different, my assertion is failing.
Any idea as to how do I get the complete path.
Note: I tried absolute string, doesn't help.
Note that in Mac OS, the var folder is actually a linked folder to /private/var
$ ls -l /
total 45
drwxrwxr-x+ 61 root admin 2074 Jun 11 08:58 Applications
drwxr-xr-x+ 63 root wheel 2142 Jul 6 2016 Library
drwxr-xr-x# 2 root wheel 68 Aug 24 2015 Network
drwxr-xr-x# 4 root wheel 136 Jun 9 18:56 System
drwxr-xr-x 6 root admin 204 Apr 22 2016 Users
drwxrwxrwt# 4 root admin 136 Jun 15 09:53 Volumes
drwxr-xr-x# 39 root wheel 1326 Jun 9 18:56 bin
drwxrwxr-t# 2 root admin 68 Aug 24 2015 cores
dr-xr-xr-x 3 root wheel 4312 Jun 9 18:57 dev
lrwxr-xr-x# 1 root wheel 11 Oct 18 2015 etc -> private/etc
dr-xr-xr-x 2 root wheel 1 Jun 9 18:58 home
-rw-r--r--# 1 root wheel 313 Aug 23 2015 installer.failurerequests
dr-xr-xr-x 2 root wheel 1 Jun 9 18:58 net
drwxr-xr-x# 6 root wheel 204 Oct 18 2015 private
drwxr-xr-x# 59 root wheel 2006 Jun 9 18:56 sbin
lrwxr-xr-x# 1 root wheel 11 Oct 18 2015 tmp -> private/tmp
drwxr-xr-x# 13 root wheel 442 Apr 19 2016 usr
lrwxr-xr-x# 1 root wheel 11 Oct 18 2015 var -> private/var
So the simplest way to fix your test is to ignore the /private part from the path. (We had a similar issue with paths that contain the tmp folder on Mac OS as well)

Heroku Pushing My Rails app as Play

I have a rails app called MBAToolbox. When I enter the directory and type "play", I get the following:
This is not a play application!
That's good! Now I type rails c and I am entered into the rails command line. Clearly this is a rails app. But when I type 'heroku create' and push 'git push heroku master', heroku tries to deploy this as a 'play' app?
I saw on their site that Heroku states:
Heroku Play framework support will be applied to applications that
match:
*/conf/application.conf in any directory except for the modules directory
, when determining to use Play.
I don't have that. My directory is as follows:
drwxr-xr-x 21 admin staff 714 Mar 22 00:20 .
drwxr-xr-x 26 admin staff 884 Mar 21 21:39 ..
-rw-r--r--# 1 admin staff 6148 Mar 21 23:37 .DS_Store
-rw-r--r-- 1 admin staff 430 Mar 21 21:39 .gitignore
drwxr-xr-x 12 admin staff 408 Mar 22 00:22 .idea
-rw-r--r-- 1 admin staff 935 Mar 21 22:38 Gemfile
-rw-r--r-- 1 admin staff 3884 Mar 21 22:38 Gemfile.lock
-rw-r--r-- 1 admin staff 9208 Mar 21 21:39 README.rdoc
-rw-r--r-- 1 admin staff 275 Mar 21 21:39 Rakefile
drwxr-xr-x 9 admin staff 306 Mar 21 21:57 app
drwxr-xr-x 10 admin staff 340 Mar 21 21:56 config
-rw-r--r-- 1 admin staff 160 Mar 21 21:39 config.ru
drwxr-xr-x 6 admin staff 204 Mar 22 00:06 db
drwxr-xr-x 3 admin staff 102 Mar 21 21:39 doc
drwxr-xr-x 5 admin staff 170 Mar 21 21:48 lib
drwxr-xr-x 4 admin staff 136 Mar 21 21:39 log
drwxr-xr-x 9 admin staff 306 Mar 21 23:37 public
drwxr-xr-x 3 admin staff 102 Mar 21 21:39 script
drwxr-xr-x 8 admin staff 272 Mar 21 21:39 test
drwxr-xr-x 6 admin staff 204 Mar 21 21:53 tmp
drwxr-xr-x 4 admin staff 136 Mar 21 21:39 vendor
Thoughts?
This article on the Heroku dev site covers both ends of this. It has a pointer to the actual source of the Play buildpack, so you can read the code that figures out which buildpack to use. You can also explicitly pick the Rails buildpack instead.

JQuery-UI and Bootstrap Conflicts

I have a Rails 3.2.5 app that is using Twitter Bootstrap. I am trying to use the JQuery UI datepicker. I have Googled this for days looking for a solution and can't find anything. I have a text field in a Rails view that I am trying to use with the JQuery datepicker. However, when I click in the text field, nothing happens.
In my Rails view, I have a simple text_field_tag like so:
<%= text_field_tag 'andrew' %>
In my associated CoffeeScript file:
$ ->
$('#andrew').datepicker
In the Chrome Developer Tools JavaScript Console, I see this error:
Uncaught TypeError: Object [object Object] has no method 'datepicker'
Now I have determined there is a conflict between JQuery-UI and Bootstrap. In that same JavaScript console, I can do this:
jQuery.noConflict();
and I get
function (a,b){return new e.fn.init(a,b,h)}
Then I can type:
$('andrew'.datepicker();
And I get:
[<input id="andrew" name="andrew" type="text" class="hasDatepicker">]
After this, when I go over to the browser window, clicking in the text field brings up the datepicker calendar just like I want it to.
So how do I get this to work in my code? That is, I am manually resolving the conflict in the JavaScript Console but I can't get it to work just through my code.
It looks like I have this one solved after much pain. I created a new project and slowly, methodically moved over pieces of my application to the new app. I finally uncovered a directory that was only in my project with the problem described above.
There was a 'public/assets' directory with the contents below. I don't recall creating this directory or putting these files in that directory. Renaming the directory to something different caused my JQuery-UI datepicker to work properly in conjunction with Twitter Bootstrap.
Here are the contents of public/assets:
-rw-r--r-- 1 andrunix staff 83360 Sep 3 18:01 application 6fc1172d858485077bbecdb82b96399a.css
-rw-r--r-- 1 andrunix staff 13546 Sep 3 18:01 application-6fc1172d858485077bbecdb82b96399a.css.gz
-rw-r--r-- 1 andrunix staff 100616 Sep 3 18:01 application-990a4cf0df42934fcc4c14aaf88b7ced.js
-rw-r--r-- 1 andrunix staff 35448 Sep 3 18:01 application-990a4cf0df42934fcc4c14aaf88b7ced.js.gz
-rw-r--r-- 1 andrunix staff 83294 Sep 3 18:01 application.css
-rw-r--r-- 1 andrunix staff 13484 Sep 3 18:01 application.css.gz
-rw-r--r-- 1 andrunix staff 100618 Sep 6 20:26 application.js
-rw-r--r-- 1 andrunix staff 35448 Sep 3 18:01 application.js.gz
-rw-r--r-- 1 andrunix staff 13826 Aug 30 17:42 glyphicons-halflings-f6675c325532ec11a984d58e172b8e2a.png
-rw-r--r-- 1 andrunix staff 8777 Aug 30 17:42 glyphicons-halflings-white-13553a5bf21ae3cc374006592488ec64.png
-rw-r--r-- 1 andrunix staff 8777 Aug 30 17:42 glyphicons-halflings-white.png
-rw-r--r-- 1 andrunix staff 13826 Aug 30 17:42 glyphicons-halflings.png
-rw-r--r-- 1 andrunix staff 368 Sep 5 15:00 manifest.yml
-rw-r--r-- 1 andrunix staff 6646 Aug 10 19:57 rails-be8732dac73d845ac5b142c8fb5f9fb0.png
-rw-r--r-- 1 andrunix staff 6646 Aug 10 19:57 rails.png
If anyone knows how this got created, that would put my mind at ease. Thanks!
Andrew

Ruby on Rails: Use Curl command in localhost

I want to save the content of a page with the system command curl but it's not working.
I think it's a problem with localhost but I don't know how to solve this.
def save_page
`/usr/bin/curl -O http://127.0.0.1:3000/category_plist`
end
Server output:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:04:54 --:--:-- 0
If you change your function to the following it should work ...
def save_page
system("/usr/bin/curl -O http://127.0.0.1:3000/category_plist")
end
To test commands like this, exit your local webserver and run "rails console", from there you can enter a command such as this and get an immediate response ...
$ rails console
Loading development environment (Rails 3.1.0.rc4)
1.9.2-p290 :001 > puts system("ls -l")
total 56
-rw-r--r--# 1 creativetechnologist staff 212 3 Feb 2011 Capfile
-rw-r--r--# 1 creativetechnologist staff 924 6 Feb 2012 Gemfile
-rw-r--r--# 1 creativetechnologist staff 3072 6 Feb 2012 Gemfile.lock
-rw-r--r--# 1 creativetechnologist staff 3943 16 Oct 23:16 MOR_git.tmproj
-rw-r--r--# 1 creativetechnologist staff 18 12 Jul 19:06 README
-rw-r--r--# 1 creativetechnologist staff 267 30 Aug 2011 Rakefile
drwxr-xr-x 7 creativetechnologist staff 238 30 Aug 2011 app
drwxr-xr-x 11 creativetechnologist staff 374 13 Sep 2011 config
-rw-r--r--# 1 creativetechnologist staff 157 30 Aug 2011 config.ru
drwxr-xr-x 6 creativetechnologist staff 204 3 Feb 2011 db
drwxr-xr-x 3 creativetechnologist staff 102 3 Feb 2011 doc
drwxr-xr-x 4 creativetechnologist staff 136 3 Feb 2011 key
drwxr-xr-x 6 creativetechnologist staff 204 7 Sep 2011 lib
drwxr-xr-x 6 creativetechnologist staff 204 11 Mar 2012 log
drwxr-xr-x 3 creativetechnologist staff 102 30 Aug 2011 logs
drwxr-xr-x 13 creativetechnologist staff 442 6 Feb 2012 public
drwxr-xr-x 3 creativetechnologist staff 102 3 Feb 2011 script
drwxr-xr-x 8 creativetechnologist staff 272 3 Feb 2011 test
drwxr-xr-x 6 creativetechnologist staff 204 3 Feb 2011 tmp
drwxr-xr-x 3 creativetechnologist staff 102 3 Feb 2011 vendor
true
=> nil
1.9.2-p290 :002 >
Hope that helps.
Try this:
def save_page
`/usr/bin/curl -s http://127.0.0.1:3000/category_plist` # -s will silent curl's output except the page
end

JBoss based rails application cant find activerecord-jdbcmysql-adapter

I have a rails application deployed to jboss as a war packaged using warbler. The application has been working great for a while now.
I am looking to change the rails application so that rails, all gems and their dependencies are vendor'd. To that extent I have it working great and can boot the application locally using mongrel with no issues, and can also build the war with no issues
However when I deploy the war to jboss it fails to load the application successfully saying it cant find activerecord-jdbcmysql-adapter.
2010-10-26 14:20:23,281 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/lmd4]] (main) unable to create shared application instance
org.jruby.rack.RackInitializationException: Please install the jdbcmysql adapter: `gem install activerecord-jdbcmysql-adapter` (no such file to load -- active_record/connection_adapters/jdbcmysql_adapter)
This is what i have done so far:
Make sure config/warble.rb has an entry for activerecord-jdbcmysql-adapter
config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl"]
Manually unpacked the war and confirmed the gems are present
WEB-INF/gems/gems
drwxrwxr-x 7 4096 Oct 26 14:14 activerecord-jdbc-adapter-1.0.2-java
drwxrwxr-x 3 4096 Oct 26 14:14 activerecord-jdbcmysql-adapter-1.0.2-java
drwxrwxr-x 3 4096 Oct 26 14:14 bouncy-castle-java-1.5.0145.2
drwxrwxr-x 3 4096 Oct 26 14:14 jdbc-mysql-5.0.4
drwxrwxr-x 4 4096 Oct 26 14:14 jruby-openssl-0.7.1
drwxrwxr-x 7 4096 Oct 26 14:14 rack-1.1.0
WEB-INF/vendor/gems
drwxrwxr-x 7 4096 Oct 26 14:14 activerecord-jdbc-adapter-1.0.2-java
drwxrwxr-x 3 4096 Oct 26 14:14 activerecord-jdbcmysql-adapter-1.0.2-java
drwxrwxr-x 3 4096 Oct 26 14:14 bouncy-castle-java-1.5.0145.2
drwxrwxr-x 5 4096 Oct 26 14:14 fastercsv-1.5.3
drwxrwxr-x 12 4096 Oct 26 14:14 hobo-1.0.1
drwxrwxr-x 7 4096 Oct 26 14:14 hobofields-1.0.1
drwxrwxr-x 4 4096 Oct 26 14:14 hobosupport-1.0.1
drwxrwxr-x 3 4096 Oct 26 14:14 jdbc-mysql-5.0.4
drwxrwxr-x 4 4096 Oct 26 14:14 jruby-openssl-0.7.1
drwxrwxr-x 4 4096 Oct 26 14:14 json-1.4.6-java
drwxrwxr-x 2 4096 Oct 26 14:14 json-jruby-1.4.6-java
drwxrwxr-x 7 4096 Oct 26 14:14 rack-1.1.0
drwxrwxr-x 4 4096 Oct 26 14:14 will_paginate-2.3.15
I dunno what could be causing this but if anyone has any ideas please share?
JBoss 5
Rails 2.3.10
JRuby 1.5
Thanks
Could be a JBoss/JRuby-Rack interaction issue. We've had some reports in the past of this not working due to JBoss' use of VFS in class and resource paths and URLs. You could be tripping on this as well.
Can you try the same war file in Tomcat 6 to isolate JBoss as part of the equation? Then please post a bug at http://kenai.com/jira/browse/JRUBY_RACK or http://bugs.jruby.org/.

Resources