DB issue after upgrade to 6.1 from 6.0

Need help? Post your questions here.

Moderator: moderators

DB issue after upgrade to 6.1 from 6.0

Postby Jypy » Tue May 30, 2017 8:58 pm

Hi,

I recently upgraded my subsonic server from 6.0 to 6.1 on an ubuntu 14.04, using the .deb file.
The dpkg process went fine and the service started correctly. But when I'm trying to login, I receive an error saying that a column is missing from the DB (PREFERRED_VIDEO_BITRATE). See below

Code: Select all
Error
Subsonic encountered an internal error. You can report this error in the Subsonic Forum. Please include the information below.

Exception   org.springframework.jdbc.BadSqlGrammarException
Message   PreparedStatementCallback; bad SQL grammar [select username, locale, theme_id, final_version_notification, beta_version_notification, song_notification, main_track_number, main_artist, main_album, main_genre, main_year, main_bit_rate, main_duration, main_format, main_file_size, playlist_track_number, playlist_artist, playlist_album, playlist_genre, playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, view_as_list, default_album_list, queue_following_songs, show_side_bar, show_index_in_side_bar, preferred_video_bitrate from user_settings where username=?]; nested exception is java.sql.SQLException: Column not found: PREFERRED_VIDEO_BITRATE in statement [select username, locale, theme_id, final_version_notification, beta_version_notification, song_notification, main_track_number, main_artist, main_album, main_genre, main_year, main_bit_rate, main_duration, main_format, main_file_size, playlist_track_number, playlist_artist, playlist_album, playlist_genre, playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, view_as_list, default_album_list, queue_following_songs, show_side_bar, show_index_in_side_bar, preferred_video_bitrate from user_settings where username=?]
Java version   Oracle Corporation 1.7.0_131
Operating system   Linux 4.4.0-75-generic
Server   jetty-6.1.x
Memory   Used 318 of 427 MB
Stack trace   org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select username, locale, theme_id, final_version_notification, beta_version_notification, song_notification, main_track_number, main_artist, main_album, main_genre, main_year, main_bit_rate, main_duration, main_format, main_file_size, playlist_track_number, playlist_artist, playlist_album, playlist_genre, playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, view_as_list, default_album_list, queue_following_songs, show_side_bar, show_index_in_side_bar, preferred_video_bitrate from user_settings where username=?]; nested exception is java.sql.SQLException: Column not found: PREFERRED_VIDEO_BITRATE in statement [select username, locale, theme_id, final_version_notification, beta_version_notification, song_notification, main_track_number, main_artist, main_album, main_genre, main_year, main_bit_rate, main_duration, main_format, main_file_size, playlist_track_number, playlist_artist, playlist_album, playlist_genre, playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, view_as_list, default_album_list, queue_following_songs, show_side_bar, show_index_in_side_bar, preferred_video_bitrate from user_settings where username=?]
   at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:220)
   at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
   at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607)
   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:641)
   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:670)
   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:678)
   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:710)
   at net.sourceforge.subsonic.dao.AbstractDao.query(AbstractDao.java:84)
   at net.sourceforge.subsonic.dao.AbstractDao.queryOne(AbstractDao.java:150)
   at net.sourceforge.subsonic.dao.UserDao.getUserSettings(UserDao.java:149)
   at net.sourceforge.subsonic.service.SettingsService.getUserSettings(SettingsService.java:1211)
   at net.sourceforge.subsonic.controller.MultiController.index(MultiController.java:179)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:606)
   at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)
   at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)
   at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
   at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
   at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
   at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
   at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
   at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
   at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:25)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:36)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:41)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
   at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
   at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
   at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
   at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
   at org.mortbay.jetty.Server.handle(Server.java:313)
   at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
   at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
   at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
   at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: java.sql.SQLException: Column not found: PREFERRED_VIDEO_BITRATE in statement [select username, locale, theme_id, final_version_notification, beta_version_notification, song_notification, main_track_number, main_artist, main_album, main_genre, main_year, main_bit_rate, main_duration, main_format, main_file_size, playlist_track_number, playlist_artist, playlist_album, playlist_genre, playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, view_as_list, default_album_list, queue_following_songs, show_side_bar, show_index_in_side_bar, preferred_video_bitrate from user_settings where username=?]
   at org.hsqldb.jdbc.Util.throwError(Unknown Source)
   at org.hsqldb.jdbc.jdbcPreparedStatement.(Unknown Source)
   at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
   at org.springframework.jdbc.core.JdbcTemplate$SimplePreparedStatementCreator.createPreparedStatement(JdbcTemplate.java:1322)
   at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:585)
   ... 68 more


Reverting back to 6.0 and everything work again as expected.
How can I fix this without rebuilding the entire DB? I don't want to loose starred songs, artists nor playlists.
I was thinking installing a new server on an other machine and try to manually add the missing parts in the DB script. But depending on the differences, this can be a bad idea.
Is there a way I can "migrate" the DB easily ?

Thanks for your help
Jypy
 
Posts: 6
Joined: Thu Mar 15, 2012 9:58 am

Return to Help

Who is online

Users browsing this forum: No registered users and 22 guests