手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表查看gouki的文章

DataGrip和navicat中的data transfer

 突然发现自己还有一个database的分类,想想以前还在为了折腾怎么弄mysql更好,后面被各种数据库折腾(小型公司,不涉及大数据库,都是常规的,象pg/sqlite/sqlserver/mongodb/redis)。

 
平时用的最多的还是navicat,不过我现在还在用11,用它的原因很的很奇怪也很尴尬
1、他的 cmd+ . , cmd+shift+.可以用来关库关表 (12开始,居然没有这个快捷键了)
2、12开始密码存到keychain里了。导致我其实没有办法迁移数据库(确实很尴尬,很多密码居然都忘光了。。。。但还能连接)
3、UI的变化,也让我有点不太习惯。
所以只能一直用着11了,11也有不少小问题,比如从新版的macos 11起,在data管理界面,对数据操作的Icon全部不见了,我都是凭记忆在猜在操作。
所幸+,-等还在因定的位置,刷新可以cmd+R,所以我其实已经忍了好多年了。
之所以还在一直使用,就是因为navicat的data transfer实在太方便了。对于一些小的表,要复制到本地,或者复制到线上。。直接在表名上data transfer就可以导入到指定的target库里了。
 
当datagrip出来后,我本来想的是可以迁移了,至少他是免费的,而且也支持市面上几乎所有的数据库,然而就是我说的data transfer这个功能阻挡了我,即使我安装了datagrip,也很少用它,直接我无意中搜索到了这个:Copy | DataGrip (jetbrains.com),原来它不叫data transfer,而是叫:copy to ....,将指定的表copy 到target里。
简单的在本地用sqlite进行了测试,操作完美,但这毕竟只是同库操作,于是我又试了一下,copy table from sqlite to mysql,完美~~
 
看来以后可以切换着使用datagrip了~(缺点也有,打开的时候数据过多的时候,没有navicat快。想想也是,毕竟是基于java的。而人家是纯C写的(也可能objc) )
 
结论:是的,你真的可以开始尝试DataGrip了
 
 
---EOF---
刚发现,DataGrip居然是收费的。不过我反正都买了全家桶了,所以也可以自豪的说用正版了,要知道原来用navicat premium可是擦边球的,You Know~~

佳能打印机连供突然没墨

 本文属于记事

1、出现1686没墨的时候,直接按停止键10秒,看看能不能恢复
2、如果不能恢复,开机,用工作抽墨水。抽出来后再放进去。这时候还会显示1686,继续 按停止键10秒,看能不能恢复
 
如果还不能恢复。找客服问问吧。
 
其它
1、如果卡纸了,取出来后,需要重启
2、吸墨的教程:连喷墨盒吸墨处理教程_哔哩哔哩_bilibili
 
如果买的是佳能的连供,可以关注一下:脱机不是机的个人空间_哔哩哔哩_bilibili,上面有不少教程,当然有问题最快的还是问客服。
 
---EOF
突然发现,我置顶的文章本身就记录了这个问题:canon连供吸墨相关问题

flutter在页面中使用getcontroller处理map时的异常

 在使用GetView的时候(其实StatelessWidget也一样)。只要使用了getX的Map<String,dynamic>,不管是get还是set,都会报setState的错误,(setState() or markNeedsBuild() called during build)。说白了和上次的问题一样:flutter中页面渲染完成的回调,但这次没有办法使用。上次是设置变量,这次是直接读变量。

当然,即使报错了,但页面还是可以正常渲染,上次是直接就红屏了。因为在项目中,没有细看原理,想了下还是应该没有设置初始值导致的。所以特别设置了一下初始值。问题解决。

做个笔记。

flutter中页面渲染完成的回调

 这玩意就有点象vue中的mounted/或者其他的afterLoad等操作。怎么突然想要用到这个呢,是因为我用了getX,之前用riverpod,也没注意过这个问题。用了GetX之后,这个东西就被派上用场了。

原因是我有一个设置背景图的功能。本来想着一切换页面,背景图就加载出来,但事实上我把这个功能提前后,进入页面就直接报错,说是obx在页面没有渲染完成的时候不能调用。

This Obx widget cannot be marked as needing to build because the framework is already in the process of building widgets. A widget can be marked as needing to be built during the build phase only if one of its ancestors is currently building. This exception is allowed because the framework builds parent widgets before children, which means a dirty descendant will always be built. Otherwise, the framework might not visit this widget during this build phase.

于是,使用:

WidgetsBinding.instance.addPostFrameCallback((time) { 

     final back = Get.find<BackgroundController>(); 

     back.set(Assets.backgroundImage); 

});

问题解决

flutter 的dialog如何自定义宽度

比如我们常用的alertDialog,只要显示一个message,不显示title的话,有点象toast。这时候如何自定义宽度 呢?

 

如果你直接在content中包含一个sizedbox,定义宽度为200,或者更小,你会发现其实是没有用的 ,通过翻看源码可以了解到。其他他是在组件上方定义了一个ConstrainedBox,然后设置了minWidth = 280.所以你设置低于280的,怎么都没用。
 
要解决这个问题也不难,在Dialog上面包两个组件UnConstraintedBox,和container。先用uncontraintedbox解除限制,再使用container来定义宽高。问题就这么解决了