New Database weewx 4.0

246 views
Skip to first unread message

Andrea

unread,
May 9, 2020, 7:41:13 AM5/9/20
to weewx-user
Hi all,
To install new weewx 4.0 with the new DB schema, I need to modify my old DB schema with my old data?  I've sqllite db.

Thanks
Andrea

Tom Keffer

unread,
May 9, 2020, 7:57:09 AM5/9/20
to weewx-user
Updating to WeeWX V4 and changing your schema are two different things. They have nothing to do with each other. Version 4 offers a new schema, but it is used only for new databases.

If for some reason you wish to change schemas and use the new schema, you can do so using either WeeWX V3 or V4. Follow the directions in the section Adding a new type to the database in the Customizing Guide, except skip step #1, and in step #2 change this

[DataBindings]
    [[wx_binding]]
        database = archive_sqlite
        table_name = archive
        manager = weewx.wxmanager.DaySummaryManager
        schema = user.electricity.electricity_schema

to this

[DataBindings]
    [[wx_binding]]
        database = archive_sqlite
        table_name = archive
        manager = weewx.wxmanager.DaySummaryManager
        schema = schemas.wview_extended.schema

-tk


--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/1dd6b51f-9e7a-40dd-b054-9eaa25520aea%40googlegroups.com.

Tom Mitchell

unread,
May 9, 2020, 7:58:45 AM5/9/20
to weewx-user
Is there any reason to convert databases created and populated under 3.x to the 4.0 schema?

Tom Keffer

unread,
May 9, 2020, 8:28:50 AM5/9/20
to weewx-user
Only if you can take advantage of some of the new types.

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.

Andrea

unread,
May 9, 2020, 9:33:56 AM5/9/20
to weewx-user
Thanks Tom

Andrea

Tom Mitchell

unread,
May 10, 2020, 8:57:01 AM5/10/20
to weewx-user
Apologies.. I think I looked in the docs and couldn't find a list of new types to potentially take advantage of. Any pointers appreciated.

Tom Keffer

unread,
May 10, 2020, 9:04:04 AM5/10/20
to weewx-user
Unfortunately, there's no list. You'll have to do a mental diff of the two files schemas/wview.py and schemas/wview_extended.py.

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.

Echo 7 Foxtrot

unread,
May 22, 2020, 12:26:53 AM5/22/20
to weewx-user
I'm very new...been running my weewx 3.9.2 (rpi4) install for about a month, using the standard wview.schema.  I've been working on adding some sensors and wanting to extend the schema, then I saw the wview_extended schema rolling out with 4.0.  It's got everything I wanted to add in the near future, and if I'm going to add I thought it'd be best to stick to the naming conventions chosen for 4.0.  I placed a copy of wview_extended.py from 4.0 in /weewx/schemas and changed the schema in weewx.conf to schemas.wview_extended.schema as mentioned in this thread.  This is what I get:

pi@raspberrypi:~ $ sudo wee_database /etc/weewx/weewx.conf --reconfigure
Using configuration file /etc/weewx/weewx.conf
Using database binding 'wx_binding', which is bound to database 'archive_sqlite'
New database 'weewx.sdb_new' already exists. Delete it first (y/n)? y
Copying database 'weewx.sdb' to 'weewx.sdb_new'
The new database will use the same unit system as the old ('US').
Are you sure you wish to proceed (y/n)? y
Traceback (most recent call last):
  File "/usr/bin/wee_database", line 794, in <module>
    main()
  File "/usr/bin/wee_database", line 156, in main
    reconfigMainDatabase(config_dict, db_binding)
  File "/usr/bin/wee_database", line 336, in reconfigMainDatabase
    new_schema=manager_dict['schema'])
  File "/usr/share/weewx/weewx/manager.py", line 817, in reconfig
    with Manager.open_with_create(new_db_dict, schema=new_schema) as new_archive:
  File "/usr/share/weewx/weewx/manager.py", line 141, in open_with_create
    dbmanager = cls(connection, table_name=table_name, schema=schema)
  File "/usr/share/weewx/weewx/manager.py", line 82, in __init__
    self._initialize_database(schema)
  File "/usr/share/weewx/weewx/manager.py", line 175, in _initialize_database
    _sqltypestr = ', '.join(["`%s` %s" % _type for _type in schema])
TypeError: not enough arguments for format string

The _new .sdb file is created but it is empty (I did it again to capture for this post, that's why it was already there).  I went to the syslog to capture anything there for this post as well, but there were no entries from attempting this.  This first time I tried it I stopped weewx first but left it running when I ran wee_database the 2nd time...result was the same.

Not sure what to do from here...I know just enough about python to have a general idea of what the problem is but no idea how to digest this and apply corrective action.  Thanks in advance for any help.

-Michael F.


On Saturday, May 9, 2020 at 6:57:09 AM UTC-5, Tom Keffer wrote:
Updating to WeeWX V4 and changing your schema are two different things. They have nothing to do with each other. Version 4 offers a new schema, but it is used only for new databases.

If for some reason you wish to change schemas and use the new schema, you can do so using either WeeWX V3 or V4. Follow the directions in the section Adding a new type to the database in the Customizing Guide, except skip step #1, and in step #2 change this

[DataBindings]
    [[wx_binding]]
        database = archive_sqlite
        table_name = archive
        manager = weewx.wxmanager.DaySummaryManager
        schema = user.electricity.electricity_schema

to this

[DataBindings]
    [[wx_binding]]
        database = archive_sqlite
        table_name = archive
        manager = weewx.wxmanager.DaySummaryManager
        schema = schemas.wview_extended.schema

-tk


On Sat, May 9, 2020 at 4:41 AM Andrea <anicol...@gmail.com> wrote:
Hi all,
To install new weewx 4.0 with the new DB schema, I need to modify my old DB schema with my old data?  I've sqllite db.

Thanks
Andrea

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx...@googlegroups.com.

Tom Keffer

unread,
May 22, 2020, 7:20:31 AM5/22/20
to weewx-user
WeeWX Version 4 introduces a new, more flexible, way of specifying schemas. The old way is still supported. If I understand you correctly, you're trying to use the new way on an old copy of WeeWX.

Try upgrading WeeWX, then try again.

-tk

To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/a46a8292-4354-4a95-a2f7-8882fab7589a%40googlegroups.com.

Greg from Oz

unread,
May 26, 2020, 6:10:50 AM5/26/20
to weewx-user
Hi I thought I would upgrade the schema and I know that I don't have but.....
I couldn't find any documentation on how to do this for mysql.
I did it this way and it seems to work. I am using weewx 4.1

stop weewx
Make a backup just in case
mysqldump -uroot -p weewx_new > weewx.sql
Because --reconfigure database makes a database called weewx_new I had to allow new permissions for the weewx uer
 mysql -uroot -p 
 GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `weewx_new`.* TO 'weewx'@'localhost'
 exit mysql
 add the line below to weewx.conf [[wx_binding]]
 schema = schemas.wview_extended.schema
 wee_database --reconfigure
 mysqldump -uroot -p weewx_new > weewx_new.sql
 the line below is the only way to rename the database
 mysql -uroot -p weewx < weewx_new.sql
 delete the weewx_new database
start weewx and cross your fingers.....

I don't know if this is the correct way to do this or if there is documentation somewhere else but it works.

Greg from Oz

unread,
May 26, 2020, 7:40:58 PM5/26/20
to weewx-user
Edited the backup from
Make a backup just in case
mysqldump -uroot -p weewx_new > weewx.sql
to
Make a backup just in case
mysqldump -uroot -p weewx > weewx.sql


On Tuesday, 26 May 2020 20:10:50 UTC+10, Greg from Oz wrote:
Hi I thought I would upgrade the schema and I know that I don't have but.....
I couldn't find any documentation on how to do this for mysql.
I did it this way and it seems to work. I am using weewx 4.1

stop weewx
Make a backup just in case
mysqldump -uroot -p weewx > weewx.sql
Reply all
Reply to author
Forward
0 new messages